Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			0e16a677e3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0e16a677e3 | 
							
								
								
									
										337
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										337
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -11,7 +11,7 @@ dependencies = [ | |||||||
|  "actix-macros", |  "actix-macros", | ||||||
|  "actix-rt", |  "actix-rt", | ||||||
|  "actix_derive", |  "actix_derive", | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "bytes", |  "bytes", | ||||||
|  "crossbeam-channel", |  "crossbeam-channel", | ||||||
|  "futures-core", |  "futures-core", | ||||||
| @@ -33,7 +33,7 @@ version = "0.5.2" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" | checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "bytes", |  "bytes", | ||||||
|  "futures-core", |  "futures-core", | ||||||
|  "futures-sink", |  "futures-sink", | ||||||
| @@ -61,17 +61,17 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "actix-files" | name = "actix-files" | ||||||
| version = "0.6.8" | version = "0.6.6" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6c0d87f10d70e2948ad40e8edea79c8e77c6c66e0250a4c1f09b690465199576" | checksum = "0773d59061dedb49a8aed04c67291b9d8cf2fe0b60130a381aab53c6dd86e9be" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "actix-http", |  "actix-http", | ||||||
|  "actix-service", |  "actix-service", | ||||||
|  "actix-utils", |  "actix-utils", | ||||||
|  "actix-web", |  "actix-web", | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "bytes", |  "bytes", | ||||||
|  "derive_more 2.0.1", |  "derive_more 0.99.20", | ||||||
|  "futures-core", |  "futures-core", | ||||||
|  "http-range", |  "http-range", | ||||||
|  "log", |  "log", | ||||||
| @@ -84,16 +84,16 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "actix-http" | name = "actix-http" | ||||||
| version = "3.11.2" | version = "3.11.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "7926860314cbe2fb5d1f13731e387ab43bd32bca224e82e6e2db85de0a3dba49" | checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "actix-codec", |  "actix-codec", | ||||||
|  "actix-rt", |  "actix-rt", | ||||||
|  "actix-service", |  "actix-service", | ||||||
|  "actix-utils", |  "actix-utils", | ||||||
|  "base64 0.22.1", |  "base64 0.22.1", | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "brotli", |  "brotli", | ||||||
|  "bytes", |  "bytes", | ||||||
|  "bytestring", |  "bytestring", | ||||||
| @@ -102,7 +102,7 @@ dependencies = [ | |||||||
|  "flate2", |  "flate2", | ||||||
|  "foldhash", |  "foldhash", | ||||||
|  "futures-core", |  "futures-core", | ||||||
|  "h2 0.3.27", |  "h2 0.3.26", | ||||||
|  "http 0.2.12", |  "http 0.2.12", | ||||||
|  "httparse", |  "httparse", | ||||||
|  "httpdate", |  "httpdate", | ||||||
| @@ -112,7 +112,7 @@ dependencies = [ | |||||||
|  "mime", |  "mime", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "rand 0.9.2", |  "rand 0.9.1", | ||||||
|  "sha1", |  "sha1", | ||||||
|  "smallvec", |  "smallvec", | ||||||
|  "tokio", |  "tokio", | ||||||
| @@ -233,7 +233,7 @@ dependencies = [ | |||||||
|  "futures-core", |  "futures-core", | ||||||
|  "futures-util", |  "futures-util", | ||||||
|  "mio", |  "mio", | ||||||
|  "socket2 0.5.9", |  "socket2", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tracing", |  "tracing", | ||||||
| ] | ] | ||||||
| @@ -312,7 +312,7 @@ dependencies = [ | |||||||
|  "serde_json", |  "serde_json", | ||||||
|  "serde_urlencoded", |  "serde_urlencoded", | ||||||
|  "smallvec", |  "smallvec", | ||||||
|  "socket2 0.5.9", |  "socket2", | ||||||
|  "time", |  "time", | ||||||
|  "tracing", |  "tracing", | ||||||
|  "url", |  "url", | ||||||
| @@ -435,6 +435,12 @@ dependencies = [ | |||||||
|  "alloc-no-stdlib", |  "alloc-no-stdlib", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "android-tzdata" | ||||||
|  | version = "0.1.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "android_system_properties" | name = "android_system_properties" | ||||||
| version = "0.1.5" | version = "0.1.5" | ||||||
| @@ -496,9 +502,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "anyhow" | name = "anyhow" | ||||||
| version = "1.0.100" | version = "1.0.98" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" | checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "arbitrary" | name = "arbitrary" | ||||||
| @@ -610,7 +616,7 @@ dependencies = [ | |||||||
|  "elliptic-curve", |  "elliptic-curve", | ||||||
|  "jsonwebtoken", |  "jsonwebtoken", | ||||||
|  "p384", |  "p384", | ||||||
|  "rand 0.9.2", |  "rand 0.9.1", | ||||||
|  "serde", |  "serde", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -640,6 +646,12 @@ version = "0.10.2" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" | checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "bitflags" | ||||||
|  | version = "1.3.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "bitflags" | name = "bitflags" | ||||||
| version = "2.9.1" | version = "2.9.1" | ||||||
| @@ -723,11 +735,21 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "bzip2" | name = "bzip2" | ||||||
| version = "0.6.0" | version = "0.5.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" | checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libbz2-rs-sys", |  "bzip2-sys", | ||||||
|  | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "bzip2-sys" | ||||||
|  | version = "0.1.13+1.0.8" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" | ||||||
|  | dependencies = [ | ||||||
|  |  "cc", | ||||||
|  |  "pkg-config", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -765,15 +787,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "chrono" | name = "chrono" | ||||||
| version = "0.4.42" | version = "0.4.41" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" | checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  |  "android-tzdata", | ||||||
|  "iana-time-zone", |  "iana-time-zone", | ||||||
|  "js-sys", |  "js-sys", | ||||||
|  "num-traits", |  "num-traits", | ||||||
|  "wasm-bindgen", |  "wasm-bindgen", | ||||||
|  "windows-link 0.2.0", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -788,9 +811,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "clap" | name = "clap" | ||||||
| version = "4.5.50" | version = "4.5.41" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623" | checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "clap_builder", |  "clap_builder", | ||||||
|  "clap_derive", |  "clap_derive", | ||||||
| @@ -798,9 +821,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "clap_builder" | name = "clap_builder" | ||||||
| version = "4.5.50" | version = "4.5.41" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0" | checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "anstream", |  "anstream", | ||||||
|  "anstyle", |  "anstyle", | ||||||
| @@ -810,9 +833,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "clap_derive" | name = "clap_derive" | ||||||
| version = "4.5.49" | version = "4.5.41" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" | checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "heck", |  "heck", | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
| @@ -1246,26 +1269,6 @@ version = "2.3.0" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "fax" |  | ||||||
| version = "0.2.6" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" |  | ||||||
| dependencies = [ |  | ||||||
|  "fax_derive", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "fax_derive" |  | ||||||
| version = "0.2.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" |  | ||||||
| dependencies = [ |  | ||||||
|  "proc-macro2", |  | ||||||
|  "quote", |  | ||||||
|  "syn", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "fdeflate" | name = "fdeflate" | ||||||
| version = "0.3.7" | version = "0.3.7" | ||||||
| @@ -1325,9 +1328,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "form_urlencoded" | name = "form_urlencoded" | ||||||
| version = "1.2.2" | version = "1.2.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
| ] | ] | ||||||
| @@ -1452,9 +1455,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||||||
| checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" | checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  |  "js-sys", | ||||||
|  "libc", |  "libc", | ||||||
|  "r-efi", |  "r-efi", | ||||||
|  "wasi 0.14.2+wasi-0.2.4", |  "wasi 0.14.2+wasi-0.2.4", | ||||||
|  |  "wasm-bindgen", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -1496,9 +1501,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "h2" | name = "h2" | ||||||
| version = "0.3.27" | version = "0.3.26" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "fnv", |  "fnv", | ||||||
| @@ -1705,7 +1710,7 @@ dependencies = [ | |||||||
|  "libc", |  "libc", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "socket2 0.5.9", |  "socket2", | ||||||
|  "system-configuration", |  "system-configuration", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tower-service", |  "tower-service", | ||||||
| @@ -1831,9 +1836,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "idna" | name = "idna" | ||||||
| version = "1.1.0" | version = "1.0.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "idna_adapter", |  "idna_adapter", | ||||||
|  "smallvec", |  "smallvec", | ||||||
| @@ -1852,9 +1857,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "image" | name = "image" | ||||||
| version = "0.25.8" | version = "0.25.6" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" | checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bytemuck", |  "bytemuck", | ||||||
|  "byteorder-lite", |  "byteorder-lite", | ||||||
| @@ -1862,7 +1867,6 @@ dependencies = [ | |||||||
|  "exr", |  "exr", | ||||||
|  "gif", |  "gif", | ||||||
|  "image-webp", |  "image-webp", | ||||||
|  "moxcms", |  | ||||||
|  "num-traits", |  "num-traits", | ||||||
|  "png", |  "png", | ||||||
|  "qoi", |  "qoi", | ||||||
| @@ -1928,11 +1932,11 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "io-uring" | name = "io-uring" | ||||||
| version = "0.7.9" | version = "0.7.8" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" | checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  "libc", |  "libc", | ||||||
| ] | ] | ||||||
| @@ -2017,6 +2021,12 @@ dependencies = [ | |||||||
|  "libc", |  "libc", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | [[package]] | ||||||
|  | name = "jpeg-decoder" | ||||||
|  | version = "0.3.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "js-sys" | name = "js-sys" | ||||||
| version = "0.3.77" | version = "0.3.77" | ||||||
| @@ -2083,17 +2093,11 @@ version = "0.5.2" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" | checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "libbz2-rs-sys" |  | ||||||
| version = "0.2.2" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "libc" | name = "libc" | ||||||
| version = "0.2.174" | version = "0.2.172" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" | checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "libfuzzer-sys" | name = "libfuzzer-sys" | ||||||
| @@ -2154,7 +2158,7 @@ dependencies = [ | |||||||
|  "base64 0.22.1", |  "base64 0.22.1", | ||||||
|  "bincode", |  "bincode", | ||||||
|  "log", |  "log", | ||||||
|  "rand 0.9.2", |  "rand 0.9.1", | ||||||
|  "reqwest", |  "reqwest", | ||||||
|  "serde", |  "serde", | ||||||
|  "serde_json", |  "serde_json", | ||||||
| @@ -2202,9 +2206,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "log" | name = "log" | ||||||
| version = "0.4.28" | version = "0.4.27" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "loop9" | name = "loop9" | ||||||
| @@ -2284,16 +2288,6 @@ dependencies = [ | |||||||
|  "windows-sys 0.52.0", |  "windows-sys 0.52.0", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "moxcms" |  | ||||||
| version = "0.7.5" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" |  | ||||||
| dependencies = [ |  | ||||||
|  "num-traits", |  | ||||||
|  "pxfm", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "native-tls" | name = "native-tls" | ||||||
| version = "0.2.14" | version = "0.2.14" | ||||||
| @@ -2323,7 +2317,7 @@ version = "0.30.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" | checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  "cfg_aliases", |  "cfg_aliases", | ||||||
|  "libc", |  "libc", | ||||||
| @@ -2451,7 +2445,7 @@ version = "0.3.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" | checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -2491,7 +2485,7 @@ version = "0.10.72" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" | checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "cfg-if", |  "cfg-if", | ||||||
|  "foreign-types", |  "foreign-types", | ||||||
|  "libc", |  "libc", | ||||||
| @@ -2607,9 +2601,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "percent-encoding" | name = "percent-encoding" | ||||||
| version = "2.3.2" | version = "2.3.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "pin-project-lite" | name = "pin-project-lite" | ||||||
| @@ -2641,11 +2635,11 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "png" | name = "png" | ||||||
| version = "0.18.0" | version = "0.17.16" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" | checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 1.3.2", | ||||||
|  "crc32fast", |  "crc32fast", | ||||||
|  "fdeflate", |  "fdeflate", | ||||||
|  "flate2", |  "flate2", | ||||||
| @@ -2694,12 +2688,6 @@ version = "0.2.0" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "ppmd-rust" |  | ||||||
| version = "1.2.1" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "c834641d8ad1b348c9ee86dec3b9840d805acd5f24daa5f90c788951a52ff59b" |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "ppv-lite86" | name = "ppv-lite86" | ||||||
| version = "0.2.21" | version = "0.2.21" | ||||||
| @@ -2746,15 +2734,6 @@ dependencies = [ | |||||||
|  "syn", |  "syn", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "pxfm" |  | ||||||
| version = "0.1.22" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "376f733579ac4d3b9fbf0afca99bf8f6b698d541118affca554d0b86f73c2470" |  | ||||||
| dependencies = [ |  | ||||||
|  "num-traits", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "qoi" | name = "qoi" | ||||||
| version = "0.4.1" | version = "0.4.1" | ||||||
| @@ -2772,9 +2751,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "quick-xml" | name = "quick-xml" | ||||||
| version = "0.38.3" | version = "0.37.5" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" | checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "memchr", |  "memchr", | ||||||
|  "serde", |  "serde", | ||||||
| @@ -2808,9 +2787,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "rand" | name = "rand" | ||||||
| version = "0.9.2" | version = "0.9.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" | checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "rand_chacha 0.9.0", |  "rand_chacha 0.9.0", | ||||||
|  "rand_core 0.9.3", |  "rand_core 0.9.3", | ||||||
| @@ -2930,7 +2909,7 @@ version = "0.5.12" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" | checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -2970,9 +2949,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "reqwest" | name = "reqwest" | ||||||
| version = "0.12.24" | version = "0.12.22" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" | checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "base64 0.22.1", |  "base64 0.22.1", | ||||||
|  "bytes", |  "bytes", | ||||||
| @@ -3097,7 +3076,7 @@ version = "1.0.7" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" | checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "errno", |  "errno", | ||||||
|  "libc", |  "libc", | ||||||
|  "linux-raw-sys", |  "linux-raw-sys", | ||||||
| @@ -3193,7 +3172,7 @@ version = "2.11.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "core-foundation", |  "core-foundation", | ||||||
|  "core-foundation-sys", |  "core-foundation-sys", | ||||||
|  "libc", |  "libc", | ||||||
| @@ -3218,28 +3197,18 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde" | name = "serde" | ||||||
| version = "1.0.224" | version = "1.0.219" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6aaeb1e94f53b16384af593c71e20b095e958dab1d26939c1b70645c5cfbcc0b" | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" | ||||||
| dependencies = [ |  | ||||||
|  "serde_core", |  | ||||||
|  "serde_derive", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "serde_core" |  | ||||||
| version = "1.0.224" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "32f39390fa6346e24defbcdd3d9544ba8a19985d0af74df8501fbfe9a64341ab" |  | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "serde_derive", |  "serde_derive", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde_derive" | name = "serde_derive" | ||||||
| version = "1.0.224" | version = "1.0.219" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "87ff78ab5e8561c9a675bfc1785cb07ae721f0ee53329a595cefd8c04c2ac4e0" | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -3248,15 +3217,14 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde_json" | name = "serde_json" | ||||||
| version = "1.0.145" | version = "1.0.140" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "itoa", |  "itoa", | ||||||
|  "memchr", |  "memchr", | ||||||
|  "ryu", |  "ryu", | ||||||
|  "serde", |  "serde", | ||||||
|  "serde_core", |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3374,7 +3342,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "num-bigint", |  "num-bigint", | ||||||
|  "num-traits", |  "num-traits", | ||||||
|  "thiserror 2.0.17", |  "thiserror 2.0.12", | ||||||
|  "time", |  "time", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -3403,16 +3371,6 @@ dependencies = [ | |||||||
|  "windows-sys 0.52.0", |  "windows-sys 0.52.0", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "socket2" |  | ||||||
| version = "0.6.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" |  | ||||||
| dependencies = [ |  | ||||||
|  "libc", |  | ||||||
|  "windows-sys 0.59.0", |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "spki" | name = "spki" | ||||||
| version = "0.7.3" | version = "0.7.3" | ||||||
| @@ -3474,9 +3432,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "sysinfo" | name = "sysinfo" | ||||||
| version = "0.36.1" | version = "0.35.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "252800745060e7b9ffb7b2badbd8b31cfa4aa2e61af879d0a3bf2a317c20217d" | checksum = "3c3ffa3e4ff2b324a57f7aeb3c349656c7b127c3c189520251a648102a92496e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
|  "memchr", |  "memchr", | ||||||
| @@ -3493,7 +3451,7 @@ version = "0.6.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" | checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "core-foundation", |  "core-foundation", | ||||||
|  "system-configuration-sys", |  "system-configuration-sys", | ||||||
| ] | ] | ||||||
| @@ -3551,11 +3509,11 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "thiserror" | name = "thiserror" | ||||||
| version = "2.0.17" | version = "2.0.12" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "thiserror-impl 2.0.17", |  "thiserror-impl 2.0.12", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3571,9 +3529,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "thiserror-impl" | name = "thiserror-impl" | ||||||
| version = "2.0.17" | version = "2.0.12" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "proc-macro2", |  "proc-macro2", | ||||||
|  "quote", |  "quote", | ||||||
| @@ -3582,16 +3540,13 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tiff" | name = "tiff" | ||||||
| version = "0.10.3" | version = "0.9.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" | checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "fax", |  | ||||||
|  "flate2", |  "flate2", | ||||||
|  "half", |  "jpeg-decoder", | ||||||
|  "quick-error", |  | ||||||
|  "weezl", |  "weezl", | ||||||
|  "zune-jpeg", |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3637,9 +3592,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "tokio" | name = "tokio" | ||||||
| version = "1.47.1" | version = "1.46.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" | checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "backtrace", |  "backtrace", | ||||||
|  "bytes", |  "bytes", | ||||||
| @@ -3650,9 +3605,9 @@ dependencies = [ | |||||||
|  "pin-project-lite", |  "pin-project-lite", | ||||||
|  "signal-hook-registry", |  "signal-hook-registry", | ||||||
|  "slab", |  "slab", | ||||||
|  "socket2 0.6.0", |  "socket2", | ||||||
|  "tokio-macros", |  "tokio-macros", | ||||||
|  "windows-sys 0.59.0", |  "windows-sys 0.52.0", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3754,7 +3709,7 @@ version = "0.6.6" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" | checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
|  "bytes", |  "bytes", | ||||||
|  "futures-util", |  "futures-util", | ||||||
|  "http 1.3.1", |  "http 1.3.1", | ||||||
| @@ -3864,14 +3819,13 @@ checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "url" | name = "url" | ||||||
| version = "2.5.7" | version = "2.5.4" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "form_urlencoded", |  "form_urlencoded", | ||||||
|  "idna", |  "idna", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "serde", |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3894,14 +3848,12 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "uuid" | name = "uuid" | ||||||
| version = "1.17.0" | version = "1.16.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" | checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "getrandom 0.3.3", |  "getrandom 0.3.3", | ||||||
|  "js-sys", |  | ||||||
|  "serde", |  "serde", | ||||||
|  "wasm-bindgen", |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -3941,9 +3893,9 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "virt" | name = "virt" | ||||||
| version = "0.4.3" | version = "0.4.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b191deb9f351999588bbd289fd40d5ca0076fd9784d1a1a0af531ec8684093c9" | checksum = "77a05f77c836efa9be343b5419663cf829d75203b813579993cdd9c44f51767e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
|  "uuid", |  "uuid", | ||||||
| @@ -3952,9 +3904,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "virt-sys" | name = "virt-sys" | ||||||
| version = "0.3.1" | version = "0.3.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "8762dc8eb11b230e7ed6c94152910f8382a128eed861af21047a203e3e2ebb00" | checksum = "c504e459878f09177f41bf2f8bb3e9a8af4fca7a09e73152fee02535d501601c" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
|  "pkg-config", |  "pkg-config", | ||||||
| @@ -3997,7 +3949,7 @@ dependencies = [ | |||||||
|  "nix", |  "nix", | ||||||
|  "num", |  "num", | ||||||
|  "quick-xml", |  "quick-xml", | ||||||
|  "rand 0.9.2", |  "rand 0.9.1", | ||||||
|  "reqwest", |  "reqwest", | ||||||
|  "rust-embed", |  "rust-embed", | ||||||
|  "serde", |  "serde", | ||||||
| @@ -4005,7 +3957,7 @@ dependencies = [ | |||||||
|  "serde_yml", |  "serde_yml", | ||||||
|  "sysinfo", |  "sysinfo", | ||||||
|  "tempfile", |  "tempfile", | ||||||
|  "thiserror 2.0.17", |  "thiserror 2.0.12", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "url", |  "url", | ||||||
|  "uuid", |  "uuid", | ||||||
| @@ -4143,9 +4095,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "weezl" | name = "weezl" | ||||||
| version = "0.1.10" | version = "0.1.8" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" | checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "winapi" | name = "winapi" | ||||||
| @@ -4187,7 +4139,7 @@ dependencies = [ | |||||||
|  "windows-collections", |  "windows-collections", | ||||||
|  "windows-core", |  "windows-core", | ||||||
|  "windows-future", |  "windows-future", | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
|  "windows-numerics", |  "windows-numerics", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -4208,7 +4160,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-implement", |  "windows-implement", | ||||||
|  "windows-interface", |  "windows-interface", | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
|  "windows-result", |  "windows-result", | ||||||
|  "windows-strings 0.4.2", |  "windows-strings 0.4.2", | ||||||
| ] | ] | ||||||
| @@ -4220,7 +4172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||||||
| checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" | checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-core", |  "windows-core", | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
|  "windows-threading", |  "windows-threading", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| @@ -4252,12 +4204,6 @@ version = "0.1.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" | ||||||
|  |  | ||||||
| [[package]] |  | ||||||
| name = "windows-link" |  | ||||||
| version = "0.2.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" |  | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows-numerics" | name = "windows-numerics" | ||||||
| version = "0.2.0" | version = "0.2.0" | ||||||
| @@ -4265,7 +4211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||||||
| checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" | checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-core", |  "windows-core", | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4285,7 +4231,7 @@ version = "0.3.4" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" | checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4294,7 +4240,7 @@ version = "0.3.1" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" | checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4303,7 +4249,7 @@ version = "0.4.2" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" | checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4362,7 +4308,7 @@ version = "0.1.0" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" | checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "windows-link 0.1.1", |  "windows-link", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4476,7 +4422,7 @@ version = "0.39.0" | |||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "bitflags", |  "bitflags 2.9.1", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| @@ -4605,9 +4551,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "zip" | name = "zip" | ||||||
| version = "4.3.0" | version = "4.1.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b" | checksum = "af7dcdb4229c0e79c2531a24de7726a0e980417a74fb4d030a35f535665439a0" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "aes", |  "aes", | ||||||
|  "arbitrary", |  "arbitrary", | ||||||
| @@ -4622,7 +4568,6 @@ dependencies = [ | |||||||
|  "liblzma", |  "liblzma", | ||||||
|  "memchr", |  "memchr", | ||||||
|  "pbkdf2", |  "pbkdf2", | ||||||
|  "ppmd-rust", |  | ||||||
|  "sha1", |  "sha1", | ||||||
|  "time", |  "time", | ||||||
|  "zeroize", |  "zeroize", | ||||||
| @@ -4693,9 +4638,9 @@ dependencies = [ | |||||||
|  |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "zune-jpeg" | name = "zune-jpeg" | ||||||
| version = "0.4.21" | version = "0.4.14" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" | checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "zune-core", |  "zune-core", | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -6,9 +6,9 @@ edition = "2024" | |||||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||||
|  |  | ||||||
| [dependencies] | [dependencies] | ||||||
| log = "0.4.28" | log = "0.4.27" | ||||||
| env_logger = "0.11.8" | env_logger = "0.11.8" | ||||||
| clap = { version = "4.5.50", features = ["derive", "env"] } | clap = { version = "4.5.41", features = ["derive", "env"] } | ||||||
| light-openid = { version = "1.0.4", features = ["crypto-wrapper"] } | light-openid = { version = "1.0.4", features = ["crypto-wrapper"] } | ||||||
| lazy_static = "1.5.0" | lazy_static = "1.5.0" | ||||||
| actix = "0.13.5" | actix = "0.13.5" | ||||||
| @@ -17,27 +17,27 @@ actix-remote-ip = "0.1.0" | |||||||
| actix-session = { version = "0.10.1", features = ["cookie-session"] } | actix-session = { version = "0.10.1", features = ["cookie-session"] } | ||||||
| actix-identity = "0.8.0" | actix-identity = "0.8.0" | ||||||
| actix-cors = "0.7.1" | actix-cors = "0.7.1" | ||||||
| actix-files = "0.6.8" | actix-files = "0.6.6" | ||||||
| actix-ws = "0.3.0" | actix-ws = "0.3.0" | ||||||
| actix-http = "3.11.2" | actix-http = "3.11.0" | ||||||
| serde = { version = "1.0.219", features = ["derive"] } | serde = { version = "1.0.219", features = ["derive"] } | ||||||
| serde_json = "1.0.145" | serde_json = "1.0.140" | ||||||
| serde_yml = "0.0.12" | serde_yml = "0.0.12" | ||||||
| quick-xml = { version = "0.38.3", features = ["serialize", "overlapped-lists"] } | quick-xml = { version = "0.37.5", features = ["serialize", "overlapped-lists"] } | ||||||
| futures-util = "0.3.31" | futures-util = "0.3.31" | ||||||
| anyhow = "1.0.100" | anyhow = "1.0.98" | ||||||
| actix-multipart = "0.7.2" | actix-multipart = "0.7.2" | ||||||
| tempfile = "3.20.0" | tempfile = "3.20.0" | ||||||
| reqwest = { version = "0.12.24", features = ["stream"] } | reqwest = { version = "0.12.22", features = ["stream"] } | ||||||
| url = "2.5.7" | url = "2.5.4" | ||||||
| virt = "0.4.3" | virt = "0.4.2" | ||||||
| sysinfo = { version = "0.36.1", features = ["serde"] } | sysinfo = { version = "0.35.2", features = ["serde"] } | ||||||
| uuid = { version = "1.17.0", features = ["v4", "serde"] } | uuid = { version = "1.16.0", features = ["v4", "serde"] } | ||||||
| lazy-regex = "3.4.1" | lazy-regex = "3.4.1" | ||||||
| thiserror = "2.0.17" | thiserror = "2.0.12" | ||||||
| image = "0.25.8" | image = "0.25.6" | ||||||
| rand = "0.9.2" | rand = "0.9.1" | ||||||
| tokio = { version = "1.47.1", features = ["rt", "time", "macros"] } | tokio = { version = "1.46.1", features = ["rt", "time", "macros"] } | ||||||
| futures = "0.3.31" | futures = "0.3.31" | ||||||
| ipnetwork = { version = "0.21.1", features = ["serde"] } | ipnetwork = { version = "0.21.1", features = ["serde"] } | ||||||
| num = "0.4.3" | num = "0.4.3" | ||||||
| @@ -45,5 +45,5 @@ rust-embed = { version = "8.7.2", features = ["mime-guess"] } | |||||||
| dotenvy = "0.15.7" | dotenvy = "0.15.7" | ||||||
| nix = { version = "0.30.1", features = ["net"] } | nix = { version = "0.30.1", features = ["net"] } | ||||||
| basic-jwt = "0.3.0" | basic-jwt = "0.3.0" | ||||||
| zip = "4.3.0" | zip = "4.1.0" | ||||||
| chrono = "0.4.42" | chrono = "0.4.41" | ||||||
| @@ -104,10 +104,10 @@ impl Token { | |||||||
|  |  | ||||||
|     /// Check whether a token is expired or not |     /// Check whether a token is expired or not | ||||||
|     pub fn is_expired(&self) -> bool { |     pub fn is_expired(&self) -> bool { | ||||||
|         if let Some(max_inactivity) = self.max_inactivity |         if let Some(max_inactivity) = self.max_inactivity { | ||||||
|             && max_inactivity + self.last_used < time() |             if max_inactivity + self.last_used < time() { | ||||||
|         { |                 return true; | ||||||
|             return true; |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         false |         false | ||||||
| @@ -188,10 +188,10 @@ impl NewToken { | |||||||
|             return Some(err); |             return Some(err); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(t) = self.max_inactivity |         if let Some(t) = self.max_inactivity { | ||||||
|             && t < 3600 |             if t < 3600 { | ||||||
|         { |                 return Some("API tokens shall be valid for at least 1 hour!"); | ||||||
|             return Some("API tokens shall be valid for at least 1 hour!"); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         None |         None | ||||||
|   | |||||||
| @@ -31,12 +31,12 @@ pub async fn upload(MultipartForm(mut form): MultipartForm<UploadDiskImageForm>) | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Check file mime type |     // Check file mime type | ||||||
|     if let Some(mime_type) = file.content_type |     if let Some(mime_type) = file.content_type { | ||||||
|         && !constants::ALLOWED_DISK_IMAGES_MIME_TYPES.contains(&mime_type.as_ref()) |         if !constants::ALLOWED_DISK_IMAGES_MIME_TYPES.contains(&mime_type.as_ref()) { | ||||||
|     { |             return Ok(HttpResponse::BadRequest().json(format!( | ||||||
|         return Ok(HttpResponse::BadRequest().json(format!( |                 "Unsupported file type for disk upload: {mime_type}" | ||||||
|             "Unsupported file type for disk upload: {mime_type}" |             ))); | ||||||
|         ))); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Extract and check file name |     // Extract and check file name | ||||||
|   | |||||||
| @@ -31,11 +31,11 @@ pub async fn upload_file(MultipartForm(mut form): MultipartForm<UploadIsoForm>) | |||||||
|         return Ok(HttpResponse::BadRequest().json("File is too large!")); |         return Ok(HttpResponse::BadRequest().json("File is too large!")); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if let Some(m) = &file.content_type |     if let Some(m) = &file.content_type { | ||||||
|         && !constants::ALLOWED_ISO_MIME_TYPES.contains(&m.to_string().as_str()) |         if !constants::ALLOWED_ISO_MIME_TYPES.contains(&m.to_string().as_str()) { | ||||||
|     { |             log::error!("Uploaded ISO file has an invalid mimetype!"); | ||||||
|         log::error!("Uploaded ISO file has an invalid mimetype!"); |             return Ok(HttpResponse::BadRequest().json("Invalid mimetype!")); | ||||||
|         return Ok(HttpResponse::BadRequest().json("Invalid mimetype!")); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     let file_name = match &file.file_name { |     let file_name = match &file.file_name { | ||||||
| @@ -87,16 +87,16 @@ pub async fn upload_from_url(req: web::Json<DownloadFromURLReq>) -> HttpResult { | |||||||
|  |  | ||||||
|     let response = reqwest::get(&req.url).await?; |     let response = reqwest::get(&req.url).await?; | ||||||
|  |  | ||||||
|     if let Some(len) = response.content_length() |     if let Some(len) = response.content_length() { | ||||||
|         && len > constants::ISO_MAX_SIZE.as_bytes() as u64 |         if len > constants::ISO_MAX_SIZE.as_bytes() as u64 { | ||||||
|     { |             return Ok(HttpResponse::BadRequest().json("File is too large!")); | ||||||
|         return Ok(HttpResponse::BadRequest().json("File is too large!")); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if let Some(ct) = response.headers().get("content-type") |     if let Some(ct) = response.headers().get("content-type") { | ||||||
|         && !constants::ALLOWED_ISO_MIME_TYPES.contains(&ct.to_str()?) |         if !constants::ALLOWED_ISO_MIME_TYPES.contains(&ct.to_str()?) { | ||||||
|     { |             return Ok(HttpResponse::BadRequest().json("Invalid file mimetype!")); | ||||||
|         return Ok(HttpResponse::BadRequest().json("Invalid file mimetype!")); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     let mut stream = response.bytes_stream(); |     let mut stream = response.bytes_stream(); | ||||||
|   | |||||||
| @@ -128,21 +128,21 @@ impl FromRequest for ApiAuthExtractor { | |||||||
|                 )); |                 )); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if let Some(ip) = token.ip_restriction |             if let Some(ip) = token.ip_restriction { | ||||||
|                 && !ip.contains(remote_ip.0) |                 if !ip.contains(remote_ip.0) { | ||||||
|             { |                     log::error!( | ||||||
|                 log::error!( |                         "Attempt to use a token for an unauthorized IP! {remote_ip:?} token_id={}", | ||||||
|                     "Attempt to use a token for an unauthorized IP! {remote_ip:?} token_id={}", |                         token.id.0 | ||||||
|                     token.id.0 |                     ); | ||||||
|                 ); |                     return Err(ErrorUnauthorized("Token cannot be used from this IP!")); | ||||||
|                 return Err(ErrorUnauthorized("Token cannot be used from this IP!")); |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if token.should_update_last_activity() |             if token.should_update_last_activity() { | ||||||
|                 && let Err(e) = api_tokens::refresh_last_used(token.id).await |                 if let Err(e) = api_tokens::refresh_last_used(token.id).await { | ||||||
|             { |                     log::error!("Could not update token last activity! {e}"); | ||||||
|                 log::error!("Could not update token last activity! {e}"); |                     return Err(ErrorBadRequest("Couldn't refresh token last activity!")); | ||||||
|                 return Err(ErrorBadRequest("Couldn't refresh token last activity!")); |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             Ok(ApiAuthExtractor { token, claims }) |             Ok(ApiAuthExtractor { token, claims }) | ||||||
|   | |||||||
| @@ -96,28 +96,28 @@ impl NetworkInfo { | |||||||
|             return Err(StructureExtraction("network name is invalid!").into()); |             return Err(StructureExtraction("network name is invalid!").into()); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(n) = &self.title |         if let Some(n) = &self.title { | ||||||
|             && n.contains('\n') |             if n.contains('\n') { | ||||||
|         { |                 return Err(StructureExtraction("Network title contain newline char!").into()); | ||||||
|             return Err(StructureExtraction("Network title contain newline char!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(dev) = &self.device |         if let Some(dev) = &self.device { | ||||||
|             && !regex!("^[a-zA-Z0-9]+$").is_match(dev) |             if !regex!("^[a-zA-Z0-9]+$").is_match(dev) { | ||||||
|         { |                 return Err(StructureExtraction("Network device name is invalid!").into()); | ||||||
|             return Err(StructureExtraction("Network device name is invalid!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(bridge) = &self.bridge_name |         if let Some(bridge) = &self.bridge_name { | ||||||
|             && !regex!("^[a-zA-Z0-9]+$").is_match(bridge) |             if !regex!("^[a-zA-Z0-9]+$").is_match(bridge) { | ||||||
|         { |                 return Err(StructureExtraction("Network bridge name is invalid!").into()); | ||||||
|             return Err(StructureExtraction("Network bridge name is invalid!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(domain) = &self.domain |         if let Some(domain) = &self.domain { | ||||||
|             && !regex!("^[a-zA-Z0-9.]+$").is_match(domain) |             if !regex!("^[a-zA-Z0-9.]+$").is_match(domain) { | ||||||
|         { |                 return Err(StructureExtraction("Domain name is invalid!").into()); | ||||||
|             return Err(StructureExtraction("Domain name is invalid!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         let mut ips = Vec::with_capacity(2); |         let mut ips = Vec::with_capacity(2); | ||||||
| @@ -303,16 +303,16 @@ impl NetworkInfo { | |||||||
|  |  | ||||||
|     /// Check if at least one NAT definition was specified on this interface |     /// Check if at least one NAT definition was specified on this interface | ||||||
|     pub fn has_nat_def(&self) -> bool { |     pub fn has_nat_def(&self) -> bool { | ||||||
|         if let Some(ipv4) = &self.ip_v4 |         if let Some(ipv4) = &self.ip_v4 { | ||||||
|             && ipv4.nat.is_some() |             if ipv4.nat.is_some() { | ||||||
|         { |                 return true; | ||||||
|             return true; |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(ipv6) = &self.ip_v6 |         if let Some(ipv6) = &self.ip_v6 { | ||||||
|             && ipv6.nat.is_some() |             if ipv6.nat.is_some() { | ||||||
|         { |                 return true; | ||||||
|             return true; |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         false |         false | ||||||
|   | |||||||
| @@ -43,12 +43,14 @@ impl From<&String> for NetworkFilterMacAddressOrVar { | |||||||
| fn extract_mac_address_or_var( | fn extract_mac_address_or_var( | ||||||
|     n: &Option<NetworkFilterMacAddressOrVar>, |     n: &Option<NetworkFilterMacAddressOrVar>, | ||||||
| ) -> anyhow::Result<Option<String>> { | ) -> anyhow::Result<Option<String>> { | ||||||
|     if let Some(mac) = n |     if let Some(mac) = n { | ||||||
|         && !mac.is_valid() |         if !mac.is_valid() { | ||||||
|     { |             return Err(NetworkFilterExtraction(format!( | ||||||
|         return Err( |                 "Invalid mac address or variable! {}", | ||||||
|             NetworkFilterExtraction(format!("Invalid mac address or variable! {}", mac.0)).into(), |                 mac.0 | ||||||
|         ); |             )) | ||||||
|  |             .into()); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Ok(n.as_ref().map(|n| n.0.to_string())) |     Ok(n.as_ref().map(|n| n.0.to_string())) | ||||||
| @@ -81,34 +83,34 @@ impl<const V: usize> From<&String> for NetworkFilterIPOrVar<V> { | |||||||
| fn extract_ip_or_var<const V: usize>( | fn extract_ip_or_var<const V: usize>( | ||||||
|     n: &Option<NetworkFilterIPOrVar<V>>, |     n: &Option<NetworkFilterIPOrVar<V>>, | ||||||
| ) -> anyhow::Result<Option<String>> { | ) -> anyhow::Result<Option<String>> { | ||||||
|     if let Some(ip) = n |     if let Some(ip) = n { | ||||||
|         && !ip.is_valid() |         if !ip.is_valid() { | ||||||
|     { |             return Err(NetworkFilterExtraction(format!( | ||||||
|         return Err(NetworkFilterExtraction(format!( |                 "Invalid IPv{V} address or variable! {}", | ||||||
|             "Invalid IPv{V} address or variable! {}", |                 ip.0 | ||||||
|             ip.0 |             )) | ||||||
|         )) |             .into()); | ||||||
|         .into()); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Ok(n.as_ref().map(|n| n.0.to_string())) |     Ok(n.as_ref().map(|n| n.0.to_string())) | ||||||
| } | } | ||||||
|  |  | ||||||
| fn extract_ip_mask<const V: usize>(n: Option<u8>) -> anyhow::Result<Option<u8>> { | fn extract_ip_mask<const V: usize>(n: Option<u8>) -> anyhow::Result<Option<u8>> { | ||||||
|     if let Some(mask) = n |     if let Some(mask) = n { | ||||||
|         && !net_utils::is_mask_valid(V, mask) |         if !net_utils::is_mask_valid(V, mask) { | ||||||
|     { |             return Err(NetworkFilterExtraction(format!("Invalid IPv{V} mask! {mask}")).into()); | ||||||
|         return Err(NetworkFilterExtraction(format!("Invalid IPv{V} mask! {mask}")).into()); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Ok(n) |     Ok(n) | ||||||
| } | } | ||||||
|  |  | ||||||
| fn extract_nw_filter_comment(n: &Option<String>) -> anyhow::Result<Option<String>> { | fn extract_nw_filter_comment(n: &Option<String>) -> anyhow::Result<Option<String>> { | ||||||
|     if let Some(comment) = n |     if let Some(comment) = n { | ||||||
|         && (comment.len() > 256 || comment.contains('\"') || comment.contains('\n')) |         if comment.len() > 256 || comment.contains('\"') || comment.contains('\n') { | ||||||
|     { |             return Err(NetworkFilterExtraction(format!("Invalid comment! {comment}")).into()); | ||||||
|         return Err(NetworkFilterExtraction(format!("Invalid comment! {comment}")).into()); |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Ok(n.clone()) |     Ok(n.clone()) | ||||||
| @@ -867,10 +869,12 @@ impl NetworkFilter { | |||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(priority) = self.priority |         if let Some(priority) = self.priority { | ||||||
|             && !(-1000..=1000).contains(&priority) |             if !(-1000..=1000).contains(&priority) { | ||||||
|         { |                 return Err( | ||||||
|             return Err(NetworkFilterExtraction("Network priority is invalid!".to_string()).into()); |                     NetworkFilterExtraction("Network priority is invalid!".to_string()).into(), | ||||||
|  |                 ); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         for fref in &self.join_filters { |         for fref in &self.join_filters { | ||||||
|   | |||||||
| @@ -118,22 +118,22 @@ impl VMInfo { | |||||||
|             XMLUuid::new_random() |             XMLUuid::new_random() | ||||||
|         }; |         }; | ||||||
|  |  | ||||||
|         if let Some(n) = &self.genid |         if let Some(n) = &self.genid { | ||||||
|             && !n.is_valid() |             if !n.is_valid() { | ||||||
|         { |                 return Err(StructureExtraction("VM genid is invalid!").into()); | ||||||
|             return Err(StructureExtraction("VM genid is invalid!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(n) = &self.title |         if let Some(n) = &self.title { | ||||||
|             && n.contains('\n') |             if n.contains('\n') { | ||||||
|         { |                 return Err(StructureExtraction("VM title contain newline char!").into()); | ||||||
|             return Err(StructureExtraction("VM title contain newline char!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(group) = &self.group |         if let Some(group) = &self.group { | ||||||
|             && !regex!("^[a-zA-Z0-9]+$").is_match(&group.0) |             if !regex!("^[a-zA-Z0-9]+$").is_match(&group.0) { | ||||||
|         { |                 return Err(StructureExtraction("VM group name is invalid!").into()); | ||||||
|             return Err(StructureExtraction("VM group name is invalid!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if self.memory < constants::MIN_VM_MEMORY || self.memory > constants::MAX_VM_MEMORY { |         if self.memory < constants::MIN_VM_MEMORY || self.memory > constants::MAX_VM_MEMORY { | ||||||
|   | |||||||
| @@ -60,10 +60,10 @@ pub struct Nat<IPv> { | |||||||
|  |  | ||||||
| impl<IPv> Nat<IPv> { | impl<IPv> Nat<IPv> { | ||||||
|     pub fn check(&self) -> anyhow::Result<()> { |     pub fn check(&self) -> anyhow::Result<()> { | ||||||
|         if let NatSourceIP::Interface { name } = &self.host_ip |         if let NatSourceIP::Interface { name } = &self.host_ip { | ||||||
|             && !net_utils::is_net_interface_name_valid(name) |             if !net_utils::is_net_interface_name_valid(name) { | ||||||
|         { |                 return Err(NatDefError::InvalidNatDef("Invalid nat interface name!").into()); | ||||||
|             return Err(NatDefError::InvalidNatDef("Invalid nat interface name!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let NatHostPort::Range { start, end } = &self.host_port { |         if let NatHostPort::Range { start, end } = &self.host_port { | ||||||
| @@ -84,10 +84,10 @@ impl<IPv> Nat<IPv> { | |||||||
|             return Err(NatDefError::InvalidNatDef("Invalid guest port!").into()); |             return Err(NatDefError::InvalidNatDef("Invalid guest port!").into()); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if let Some(comment) = &self.comment |         if let Some(comment) = &self.comment { | ||||||
|             && comment.len() > constants::NET_NAT_COMMENT_MAX_SIZE |             if comment.len() > constants::NET_NAT_COMMENT_MAX_SIZE { | ||||||
|         { |                 return Err(NatDefError::InvalidNatDef("Comment is too large!").into()); | ||||||
|             return Err(NatDefError::InvalidNatDef("Comment is too large!").into()); |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         Ok(()) |         Ok(()) | ||||||
|   | |||||||
							
								
								
									
										2816
									
								
								virtweb_frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2816
									
								
								virtweb_frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -12,45 +12,45 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@emotion/react": "^11.14.0", |     "@emotion/react": "^11.14.0", | ||||||
|     "@emotion/styled": "^11.14.1", |     "@emotion/styled": "^11.14.1", | ||||||
|     "@fontsource/roboto": "^5.2.8", |     "@fontsource/roboto": "^5.2.6", | ||||||
|     "@mdi/js": "^7.4.47", |     "@mdi/js": "^7.4.47", | ||||||
|     "@mdi/react": "^1.6.1", |     "@mdi/react": "^1.6.1", | ||||||
|     "@monaco-editor/react": "^4.7.0", |     "@monaco-editor/react": "^4.7.0", | ||||||
|     "@mui/icons-material": "^7.3.4", |     "@mui/icons-material": "^7.1.2", | ||||||
|     "@mui/material": "^7.3.4", |     "@mui/material": "^7.1.2", | ||||||
|     "@mui/x-charts": "^8.3.1", |     "@mui/x-charts": "^8.3.1", | ||||||
|     "@mui/x-data-grid": "^8.11.3", |     "@mui/x-data-grid": "^8.7.0", | ||||||
|     "date-and-time": "^3.6.0", |     "date-and-time": "^3.6.0", | ||||||
|     "filesize": "^10.1.6", |     "filesize": "^10.1.6", | ||||||
|     "humanize-duration": "^3.33.1", |     "humanize-duration": "^3.33.0", | ||||||
|     "monaco-editor": "^0.52.2", |     "monaco-editor": "^0.52.2", | ||||||
|     "monaco-yaml": "^5.4.0", |     "monaco-yaml": "^5.4.0", | ||||||
|     "react": "^19.2.0", |     "react": "^19.1.0", | ||||||
|     "react-dom": "^19.2.0", |     "react-dom": "^19.1.0", | ||||||
|     "react-router-dom": "^7.9.5", |     "react-router-dom": "^7.6.3", | ||||||
|     "react-syntax-highlighter": "^15.6.6", |     "react-syntax-highlighter": "^15.6.1", | ||||||
|     "react-vnc": "^3.1.0", |     "react-vnc": "^3.1.0", | ||||||
|     "uuid": "^11.1.0", |     "uuid": "^11.1.0", | ||||||
|     "xml-formatter": "^3.6.6", |     "xml-formatter": "^3.6.6", | ||||||
|     "yaml": "^2.8.1" |     "yaml": "^2.8.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@eslint/js": "^9.35.0", |     "@eslint/js": "^9.27.0", | ||||||
|     "@types/humanize-duration": "^3.27.4", |     "@types/humanize-duration": "^3.27.4", | ||||||
|     "@types/jest": "^30.0.0", |     "@types/jest": "^29.5.14", | ||||||
|     "@types/react": "^19.2.2", |     "@types/react": "^19.1.8", | ||||||
|     "@types/react-dom": "^19.2.2", |     "@types/react-dom": "^19.1.6", | ||||||
|     "@types/react-syntax-highlighter": "^15.5.13", |     "@types/react-syntax-highlighter": "^15.5.13", | ||||||
|     "@types/uuid": "^10.0.0", |     "@types/uuid": "^10.0.0", | ||||||
|     "@vitejs/plugin-react": "^4.7.0", |     "@vitejs/plugin-react": "^4.6.0", | ||||||
|     "eslint": "^9.35.0", |     "eslint": "^9.30.1", | ||||||
|     "eslint-plugin-react-dom": "^1.53.1", |     "eslint-plugin-react-dom": "^1.52.2", | ||||||
|     "eslint-plugin-react-hooks": "^5.2.0", |     "eslint-plugin-react-hooks": "^5.2.0", | ||||||
|     "eslint-plugin-react-refresh": "^0.4.24", |     "eslint-plugin-react-refresh": "^0.4.20", | ||||||
|     "eslint-plugin-react-x": "^1.53.1", |     "eslint-plugin-react-x": "^1.52.2", | ||||||
|     "globals": "^16.3.0", |     "globals": "^16.3.0", | ||||||
|     "typescript": "^5.9.3", |     "typescript": "^5.8.3", | ||||||
|     "typescript-eslint": "^8.43.0", |     "typescript-eslint": "^8.32.1", | ||||||
|     "vite": "^6.3.6" |     "vite": "^6.3.5" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user