diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index c2217db..77d4904 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -29,18 +29,24 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cipher", "cpufeatures", ] +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + [[package]] name = "ahash" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", "version_check", "zerocopy", @@ -103,6 +109,15 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +[[package]] +name = "approx" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +dependencies = [ + "num-traits", +] + [[package]] name = "arbitrary" version = "1.4.1" @@ -117,9 +132,15 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + [[package]] name = "arrayvec" version = "0.7.6" @@ -202,7 +223,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", - "cfg-if", + "cfg-if 1.0.0", "concurrent-queue", "futures-io", "futures-lite", @@ -237,7 +258,7 @@ dependencies = [ "async-signal", "async-task", "blocking", - "cfg-if", + "cfg-if 1.0.0", "event-listener", "futures-lite", "rustix", @@ -252,7 +273,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -264,7 +285,7 @@ dependencies = [ "async-io", "async-lock", "atomic-waker", - "cfg-if", + "cfg-if 1.0.0", "futures-core", "futures-io", "rustix", @@ -281,13 +302,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -313,6 +334,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -332,10 +362,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.7.6", "log", - "nom", - "num-rational", + "nom 7.1.3", + "num-rational 0.4.2", "v_frame", ] @@ -345,7 +375,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" dependencies = [ - "arrayvec", + "arrayvec 0.7.6", ] [[package]] @@ -355,9 +385,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cfg-if", + "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.8.3", "object", "rustc-demangle", "windows-targets 0.52.6", @@ -461,9 +491,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -471,15 +501,21 @@ dependencies = [ [[package]] name = "built" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" +checksum = "73848a43c5d63a1251d17adf6c2bf78aa94830e60a335a95eeea45d6ba9e1e4d" [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byte-slice-cast" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" [[package]] name = "bytemuck" @@ -501,9 +537,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ "serde", ] @@ -572,7 +608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fbd1fe9db3ebf71b89060adaf7b0504c2d6a425cf061313099547e382c2e472" dependencies = [ "serde", - "toml 0.8.19", + "toml 0.8.20", ] [[package]] @@ -586,9 +622,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.10" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" dependencies = [ "jobserver", "libc", @@ -622,6 +658,12 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" @@ -657,6 +699,12 @@ dependencies = [ "inout", ] +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + [[package]] name = "cocoa" version = "0.26.0" @@ -709,7 +757,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.8.21", ] [[package]] @@ -779,9 +827,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -792,7 +840,23 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", +] + +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-channel" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +dependencies = [ + "crossbeam-utils 0.7.2", + "maybe-uninit", ] [[package]] @@ -801,7 +865,7 @@ version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.8.21", ] [[package]] @@ -811,7 +875,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", - "crossbeam-utils", + "crossbeam-utils 0.8.21", ] [[package]] @@ -820,7 +884,18 @@ version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "crossbeam-utils", + "crossbeam-utils 0.8.21", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg", + "cfg-if 0.1.10", + "lazy_static", ] [[package]] @@ -869,7 +944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -879,7 +954,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.98", +] + +[[package]] +name = "custom_debug_derive" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a707ceda8652f6c7624f2be725652e9524c815bf3b9d55a0b2320be2303f9c11" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.98", + "synstructure", ] [[package]] @@ -903,7 +991,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -914,7 +1002,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -943,6 +1031,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "decorum" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "281759d3c8a14f5c3f0c49363be56810fcd7f910422f97f2db850c2920fde5cf" +dependencies = [ + "approx", + "num-traits", + "serde", + "serde_derive", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + [[package]] name = "deflate" version = "1.0.0" @@ -964,15 +1074,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -991,7 +1101,16 @@ version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys", + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", ] [[package]] @@ -1002,10 +1121,22 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", "option-ext", - "redox_users", + "redox_users 0.4.6", "windows-sys 0.48.0", ] +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", +] + [[package]] name = "dispatch" version = "0.2.0" @@ -1020,7 +1151,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1029,7 +1160,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading", + "libloading 0.8.6", ] [[package]] @@ -1052,7 +1183,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1093,9 +1224,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] name = "either" @@ -1112,7 +1243,7 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.19", + "toml 0.8.20", "vswhom", "winreg", ] @@ -1123,6 +1254,18 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "endi" version = "1.1.0" @@ -1147,7 +1290,7 @@ checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1204,9 +1347,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" dependencies = [ "bit_field", - "half", + "half 2.4.1", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.3", "rayon-core", "smallvec", "zune-inflate", @@ -1264,7 +1407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.3", ] [[package]] @@ -1273,6 +1416,26 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "font" +version = "0.1.0" +source = "git+https://github.com/pdf-rs/font#78a8d9c58b4aafddd309ab7bbefd3bb5c347cf45" +dependencies = [ + "decorum", + "indexmap 1.9.3", + "istring 0.3.4", + "itertools 0.10.5", + "log", + "nom 5.1.3", + "pathfinder_color", + "pathfinder_content", + "pathfinder_geometry", + "pdf_encoding 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3", + "slotmap", + "tuple 0.5.2 (git+https://github.com/s3bk/tuple/)", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -1291,7 +1454,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1372,7 +1535,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1528,9 +1691,11 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", + "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1539,9 +1704,23 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -1592,6 +1771,26 @@ dependencies = [ "winapi", ] +[[package]] +name = "gl" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + [[package]] name = "glib" version = "0.18.5" @@ -1626,7 +1825,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1652,10 +1851,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240a3059d86f2ba6859ac79f95ff94e65606abc775c1bc0ecf9b6590fb35dc04" dependencies = [ "async-trait", - "tuple", + "tuple 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "web-time", ] +[[package]] +name = "globalcache" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f07c02868ebe3ffab0c273801b815f19a9fc05743b5b9da971449dd40604fe30" +dependencies = [ + "async-trait", + "rustc-hash", + "tuple 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "web-time", +] + +[[package]] +name = "glyphmatcher" +version = "0.1.0" +source = "git+https://github.com/s3bk/glyphmatcher#7bd5d40aaa8893fa4f2e07c758fa34127e176c8c" +dependencies = [ + "font", + "istring 0.4.2", + "itertools 0.14.0", + "pathfinder_content", + "pathfinder_geometry", + "pdf_encoding 0.4.0 (git+https://github.com/pdf-rs/encoding)", + "postcard", + "serde", + "serde_json", +] + [[package]] name = "gobject-sys" version = "0.18.0" @@ -1716,19 +1943,45 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] +[[package]] +name = "half" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" + [[package]] name = "half" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crunchy", ] +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf" +dependencies = [ + "ahash 0.3.8", + "autocfg", + "serde", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1741,7 +1994,7 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash", + "ahash 0.8.11", "allocator-api2", ] @@ -1751,6 +2004,20 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.4.1" @@ -1825,15 +2092,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "hyper" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -1848,6 +2115,24 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + [[package]] name = "hyper-util" version = "0.1.10" @@ -1897,7 +2182,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" dependencies = [ "byteorder", - "png", + "png 0.17.16", ] [[package]] @@ -2015,7 +2300,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2045,6 +2330,39 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-iter", + "num-rational 0.3.2", + "num-traits", + "png 0.16.8", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-traits", + "png 0.17.16", + "qoi", + "tiff", +] + [[package]] name = "image" version = "0.25.5" @@ -2058,7 +2376,7 @@ dependencies = [ "gif", "image-webp", "num-traits", - "png", + "png 0.17.16", "qoi", "ravif", "rayon", @@ -2125,6 +2443,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "interpolate_name" version = "0.2.4" @@ -2133,7 +2463,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2170,6 +2500,23 @@ dependencies = [ "datasize", ] +[[package]] +name = "istring" +version = "0.4.2" +source = "git+https://github.com/s3bk/istring#bb736be4b5afda8a273b09ad7b27884c79ff09a5" +dependencies = [ + "serde", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -2188,6 +2535,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -2230,7 +2586,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", - "cfg-if", + "cfg-if 1.0.0", "combine", "jni-sys", "log", @@ -2259,6 +2615,9 @@ name = "jpeg-decoder" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +dependencies = [ + "rayon", +] [[package]] name = "js-sys" @@ -2303,6 +2662,22 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "khronos-egl" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + [[package]] name = "kuchikiki" version = "0.8.2" @@ -2328,6 +2703,19 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + [[package]] name = "libappindicator" version = "0.9.0" @@ -2348,7 +2736,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", - "libloading", + "libloading 0.7.4", "once_cell", ] @@ -2398,10 +2786,20 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "winapi", ] +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets 0.52.6", +] + [[package]] name = "libredox" version = "0.1.3" @@ -2490,10 +2888,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "rayon", ] +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + [[package]] name = "md5" version = "0.7.0" @@ -2527,6 +2931,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + [[package]] name = "miniz_oxide" version = "0.8.3" @@ -2554,7 +2967,7 @@ version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" dependencies = [ - "crossbeam-channel", + "crossbeam-channel 0.5.14", "dpi", "gtk", "keyboard-types", @@ -2562,7 +2975,7 @@ dependencies = [ "objc2-app-kit", "objc2-foundation", "once_cell", - "png", + "png 0.17.16", "serde", "thiserror 1.0.69", "windows-sys 0.59.0", @@ -2611,7 +3024,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags 2.8.0", - "cfg-if", + "cfg-if 1.0.0", "cfg_aliases", "libc", "memoffset", @@ -2623,6 +3036,17 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + [[package]] name = "nom" version = "7.1.3" @@ -2663,7 +3087,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2675,6 +3099,28 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.2" @@ -2713,7 +3159,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2822,9 +3268,9 @@ dependencies = [ [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -2955,9 +3401,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "open" @@ -3034,7 +3480,7 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", @@ -3053,6 +3499,156 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" +[[package]] +name = "pathfinder_canvas" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "pathfinder_color", + "pathfinder_content", + "pathfinder_geometry", + "pathfinder_renderer", +] + +[[package]] +name = "pathfinder_color" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_content" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "image 0.23.14", + "log", + "pathfinder_color", + "pathfinder_geometry", + "pathfinder_simd", + "smallvec", +] + +[[package]] +name = "pathfinder_geometry" +version = "0.5.1" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "log", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_gl" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "gl", + "half 1.8.3", + "log", + "pathfinder_geometry", + "pathfinder_gpu", + "pathfinder_resources", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_gpu" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "bitflags 1.3.2", + "fxhash", + "half 1.8.3", + "image 0.23.14", + "instant", + "log", + "pathfinder_color", + "pathfinder_geometry", + "pathfinder_resources", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_rasterize" +version = "0.1.0" +source = "git+https://github.com/s3bk/pathfinder_rasterizer#dbd30a843d8e594195ad858f93448e17efb67c0d" +dependencies = [ + "font", + "gl", + "image 0.25.5", + "khronos-egl", + "pathfinder_canvas", + "pathfinder_color", + "pathfinder_content", + "pathfinder_geometry", + "pathfinder_gl", + "pathfinder_gpu", + "pathfinder_renderer", + "pathfinder_resources", +] + +[[package]] +name = "pathfinder_renderer" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "bitflags 1.3.2", + "byte-slice-cast", + "byteorder", + "crossbeam-channel 0.4.4", + "fxhash", + "half 1.8.3", + "hashbrown 0.7.2", + "instant", + "log", + "pathfinder_color", + "pathfinder_content", + "pathfinder_geometry", + "pathfinder_gpu", + "pathfinder_resources", + "pathfinder_simd", + "pathfinder_ui", + "rayon", + "serde", + "serde_json", + "smallvec", + "vec_map", +] + +[[package]] +name = "pathfinder_resources" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" + +[[package]] +name = "pathfinder_simd" +version = "0.5.4" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "pathfinder_ui" +version = "0.5.0" +source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +dependencies = [ + "hashbrown 0.7.2", + "pathfinder_color", + "pathfinder_geometry", + "pathfinder_gpu", + "pathfinder_resources", + "pathfinder_simd", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "pdf" version = "0.9.1" @@ -3061,11 +3657,11 @@ dependencies = [ "bitflags 2.8.0", "cbc", "datasize", - "deflate", + "deflate 1.0.0", "fax", - "globalcache", + "globalcache 0.2.4", "indexmap 2.7.1", - "istring", + "istring 0.3.4", "itertools 0.13.0", "jpeg-decoder", "libflate", @@ -3076,6 +3672,7 @@ dependencies = [ "sha2", "snafu", "stringprep", + "tempfile", "weezl", ] @@ -3085,9 +3682,12 @@ version = "0.1.0" dependencies = [ "base64 0.21.7", "fax", - "image", + "image 0.25.5", "lazy_static", + "pathfinder_geometry", + "pathfinder_rasterize", "pdf", + "pdf_render", "regex", "serde", "serde_json", @@ -3105,7 +3705,48 @@ version = "0.2.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", +] + +[[package]] +name = "pdf_encoding" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07793d65f6165493079ab18885b7d945a55e683615a68e1419ba3e8ebf5b7631" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "pdf_encoding" +version = "0.4.0" +source = "git+https://github.com/pdf-rs/encoding#f473ae1e8f0c1f262b00d6994136c6ff518f89d9" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "pdf_render" +version = "0.1.0" +dependencies = [ + "custom_debug_derive", + "font", + "globalcache 0.3.2", + "glyphmatcher", + "image 0.24.9", + "instant", + "istring 0.4.2", + "itertools 0.14.0", + "log", + "once_cell", + "pathfinder_color", + "pathfinder_content", + "pathfinder_geometry", + "pathfinder_renderer", + "pathfinder_resources", + "pdf", + "pdf_encoding 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json", ] [[package]] @@ -3218,7 +3859,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3290,6 +3931,18 @@ dependencies = [ "time", ] +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "deflate 0.8.6", + "miniz_oxide 0.3.7", +] + [[package]] name = "png" version = "0.17.16" @@ -3300,7 +3953,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.3", ] [[package]] @@ -3309,7 +3962,7 @@ version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "concurrent-queue", "hermit-abi", "pin-project-lite", @@ -3318,6 +3971,19 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "postcard" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "heapless", + "serde", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -3364,7 +4030,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.22.23", ] [[package]] @@ -3422,7 +4088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3451,13 +4117,65 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.11", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom 0.2.15", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.11", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.38" @@ -3556,11 +4274,11 @@ checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" dependencies = [ "arbitrary", "arg_enum_proc_macro", - "arrayvec", + "arrayvec 0.7.6", "av1-grain", "bitstream-io", "built", - "cfg-if", + "cfg-if 1.0.0", "interpolate_name", "itertools 0.12.1", "libc", @@ -3621,7 +4339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", - "crossbeam-utils", + "crossbeam-utils 0.8.21", ] [[package]] @@ -3644,6 +4362,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 2.0.11", +] + [[package]] name = "regex" version = "1.11.1" @@ -3687,6 +4416,7 @@ dependencies = [ "http-body", "http-body-util", "hyper", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -3695,11 +4425,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", "tokio", + "tokio-rustls", "tokio-util", "tower", "tower-service", @@ -3708,6 +4443,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", + "webpki-roots", "windows-registry", ] @@ -3742,6 +4478,21 @@ version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if 1.0.0", + "getrandom 0.2.15", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rle-decode-fast" version = "1.0.3" @@ -3754,6 +4505,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -3765,9 +4522,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.8.0", "errno", @@ -3776,6 +4533,49 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "rustls" +version = "0.23.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.19" @@ -3784,9 +4584,9 @@ checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -3821,7 +4621,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3893,7 +4693,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3904,14 +4704,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa 1.0.14", "memchr", @@ -3927,7 +4727,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3978,7 +4778,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4019,7 +4819,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -4075,6 +4875,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "1.13.2" @@ -4099,7 +4908,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4160,6 +4969,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4174,26 +4992,25 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" dependencies = [ "new_debug_unreachable", - "once_cell", "parking_lot", - "phf_shared 0.10.0", + "phf_shared 0.11.3", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "244292f3441c89febe5b5bdfbb6863aeaf4f64da810ea3050fd927b27b8d92ce" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", ] @@ -4215,6 +5032,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "swift-rs" version = "1.0.7" @@ -4239,9 +5062,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -4265,7 +5088,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4277,7 +5100,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.19", + "toml 0.8.20", "version-compare", ] @@ -4291,7 +5114,7 @@ dependencies = [ "cocoa", "core-foundation", "core-graphics", - "crossbeam-channel", + "crossbeam-channel 0.5.14", "dispatch", "dlopen2", "dpi", @@ -4327,7 +5150,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4338,13 +5161,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.2.3" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78f6efc261c7905839b4914889a5b25df07f0ff89c63fb4afd6ff8c96af15e4d" +checksum = "58a998b6be84104ca05c7e9a21f2180ddec020c8b84ea59a8fc8530a2a19588d" dependencies = [ "anyhow", "bytes", - "dirs", + "dirs 6.0.0", "dunce", "embed_plist", "futures-util", @@ -4394,7 +5217,7 @@ checksum = "8e950124f6779c6cf98e3260c7a6c8488a74aa6350dd54c6950fdaa349bca2df" dependencies = [ "anyhow", "cargo_toml", - "dirs", + "dirs 5.0.1", "glob", "heck 0.5.0", "json-patch", @@ -4404,7 +5227,7 @@ dependencies = [ "serde_json", "tauri-utils", "tauri-winres", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] @@ -4419,14 +5242,14 @@ dependencies = [ "ico", "json-patch", "plist", - "png", + "png 0.17.16", "proc-macro2", "quote", "semver", "serde", "serde_json", "sha2", - "syn 2.0.96", + "syn 2.0.98", "tauri-utils", "thiserror 2.0.11", "time", @@ -4444,7 +5267,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "tauri-codegen", "tauri-utils", ] @@ -4462,7 +5285,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] @@ -4502,7 +5325,7 @@ dependencies = [ "tauri-plugin", "tauri-utils", "thiserror 2.0.11", - "toml 0.8.19", + "toml 0.8.20", "url", "uuid", ] @@ -4604,7 +5427,7 @@ dependencies = [ "serde_with", "swift-rs", "thiserror 2.0.11", - "toml 0.8.19", + "toml 0.8.20", "url", "urlpattern", "uuid", @@ -4623,13 +5446,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "fastrand", - "getrandom 0.2.15", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", @@ -4678,7 +5501,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4689,7 +5512,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4776,6 +5599,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "tokio-rustls" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.13" @@ -4803,14 +5636,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.23", ] [[package]] @@ -4848,15 +5681,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.24", + "winnow 0.7.1", ] [[package]] @@ -4905,7 +5738,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4924,15 +5757,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b" dependencies = [ "core-graphics", - "crossbeam-channel", - "dirs", + "crossbeam-channel 0.5.14", + "dirs 5.0.1", "libappindicator", "muda", "objc2", "objc2-app-kit", "objc2-foundation", "once_cell", - "png", + "png 0.17.16", "serde", "thiserror 1.0.69", "windows-sys 0.59.0", @@ -4954,6 +5787,15 @@ dependencies = [ "serde", ] +[[package]] +name = "tuple" +version = "0.5.2" +source = "git+https://github.com/s3bk/tuple/#bcdc3d9fcf5f93ab8310e84f139ccaab6dd6acc7" +dependencies = [ + "num-traits", + "serde", +] + [[package]] name = "typeid" version = "1.0.2" @@ -5026,9 +5868,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-normalization" @@ -5051,6 +5893,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.4" @@ -5095,11 +5943,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", "serde", ] @@ -5114,6 +5962,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version-compare" version = "0.2.0" @@ -5177,13 +6031,22 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -5199,7 +6062,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-shared", ] @@ -5209,7 +6072,7 @@ version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "once_cell", "wasm-bindgen", @@ -5234,7 +6097,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5263,9 +6126,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" dependencies = [ "cc", "downcast-rs", @@ -5277,9 +6140,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" +checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ "bitflags 2.8.0", "rustix", @@ -5289,9 +6152,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.5" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" +checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" dependencies = [ "bitflags 2.8.0", "wayland-backend", @@ -5301,20 +6164,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", - "quick-xml 0.36.2", + "quick-xml 0.37.2", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -5385,6 +6248,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "webpki-roots" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webview2-com" version = "0.34.0" @@ -5407,7 +6279,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5512,7 +6384,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5523,7 +6395,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5854,9 +6726,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.24" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -5867,10 +6739,19 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -5892,7 +6773,7 @@ dependencies = [ "base64 0.22.1", "block2", "cookie", - "crossbeam-channel", + "crossbeam-channel 0.5.14", "dpi", "dunce", "gdkx11", @@ -5957,6 +6838,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "xml-rs" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + [[package]] name = "yoke" version = "0.7.5" @@ -5977,15 +6864,15 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "synstructure", ] [[package]] name = "zbus" -version = "5.3.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "192a0d989036cd60a1e91a54c9851fb9ad5bd96125d41803eed79d2e2ef74bd7" +checksum = "59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236" dependencies = [ "async-broadcast", "async-executor", @@ -6000,7 +6887,7 @@ dependencies = [ "enumflags2", "event-listener", "futures-core", - "futures-util", + "futures-lite", "hex", "nix", "ordered-stream", @@ -6011,7 +6898,7 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.6.24", + "winnow 0.7.1", "xdg-home", "zbus_macros", "zbus_names", @@ -6020,14 +6907,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.3.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3685b5c81fce630efc3e143a4ded235b107f1b1cdf186c3f115529e5e5ae4265" +checksum = "f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "zbus_names", "zvariant", "zvariant_utils", @@ -6035,13 +6922,13 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519629a3f80976d89c575895b05677cbc45eaf9f70d62a364d819ba646409cc8" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.6.24", + "winnow 0.7.1", "zvariant", ] @@ -6063,7 +6950,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6083,10 +6970,16 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "synstructure", ] +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + [[package]] name = "zerovec" version = "0.10.4" @@ -6106,7 +6999,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6135,43 +7028,43 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e6b9b5f1361de2d5e7d9fd1ee5f6f7fcb6060618a1f82f3472f58f2b8d4be9" +checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac" dependencies = [ "endi", "enumflags2", "serde", "static_assertions", "url", - "winnow 0.6.24", + "winnow 0.7.1", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573a8dd76961957108b10f7a45bac6ab1ea3e9b7fe01aff88325dc57bb8f5c8b" +checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd46446ea2a1f353bfda53e35f17633afa79f4fe290a611c94645c69fe96a50" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", "serde", "static_assertions", - "syn 2.0.96", - "winnow 0.6.24", + "syn 2.0.98", + "winnow 0.7.1", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d394cef..3a0ea59 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -2,7 +2,7 @@ name = "pdf-forge" version = "0.1.0" description = "A Tauri App" -authors = ["you"] +authors = ["Kilian Schuettler"] edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -22,7 +22,7 @@ tauri = { version = "2", features = [] } tauri-plugin-opener = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" -pdf = { path = "../src-pdfrs/pdf", features = ["cache"] } +pdf = { path = "/home/kschuettler/rust/pdf-forge/src-pdfrs/pdf", features = ["cache", "dump"], default-features=false} tauri-plugin-fs = "2" tauri-plugin-dialog = "2" uuid = { version = "1.12.0", features = ["v4"] } @@ -31,3 +31,6 @@ lazy_static = "1.4.0" fax = "0.2" base64 = "0.21" image = { version = "0.25.5", features = ["jpeg"] } +pdf_render = { path = "../../pdf-render/render" } +pathfinder_rasterize = { git = "https://github.com/s3bk/pathfinder_rasterizer" } +pathfinder_geometry = { git = "https://github.com/servo/pathfinder" } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 756c942..19c8f6c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,3 +1,4 @@ +mod render; mod retrieval; #[cfg(test)] @@ -6,24 +7,24 @@ mod tests; extern crate pdf; use crate::pdf::object::Resolve; +use crate::render::Renderer; use base64; -use image::codecs::jpeg::JpegEncoder; -use image::ImageFormat; +use base64::prelude::BASE64_STANDARD; +use base64::Engine; +use image::{ImageFormat, RgbImage}; use lazy_static::lazy_static; use pdf::file::{File, FileOptions, NoLog, ObjectCache, StreamCache}; -use pdf::object::{ImageXObject, Object, PlainRef}; +use pdf::object::{Object, PlainRef}; use pdf::primitive::{Dictionary, Primitive}; use pdf::xref::XRef; use regex::Regex; -use retrieval::{ - get_pdf_stream_by_path_with_file, get_prim_by_path_with_file, get_stream_data_by_path_with_file, -}; +use retrieval::{get_prim_by_path_with_file, get_stream_data_by_path_with_file}; use serde::{Deserialize, Serialize}; use std::collections::{HashMap, VecDeque}; use std::io::Cursor; use std::ops::DerefMut; use std::path::Path; -use std::sync::{Arc, Mutex, MutexGuard, RwLock}; +use std::sync::{Arc, RwLock}; use tauri::{Manager, State}; use uuid::Uuid; @@ -112,7 +113,11 @@ pub struct ContentsModel { #[tauri::command] fn get_all_files(session: State) -> Vec { - session.get_all_files().iter().map(|s| s.pdf_file.clone()).collect() + session + .get_all_files() + .iter() + .map(|s| s.pdf_file.clone()) + .collect() } #[tauri::command] @@ -180,12 +185,7 @@ fn to_pdf_file(path: &str, file: &CosFile) -> Result { } #[tauri::command] -fn get_contents( - id: &str, - path: &str, - session: State, -) -> Result { - +fn get_contents(id: &str, path: &str, session: State) -> Result { let file = session.get_file(id)?; let (_, page_prim, _) = get_prim_by_path_with_file(path, &file.cos_file)?; @@ -211,22 +211,12 @@ fn get_stream_data_as_string( path: &str, session: State, ) -> Result { - let file = session.get_file(id)?; let data = get_stream_data_by_path_with_file(path, &file.cos_file)?; Ok(String::from_utf8_lossy(&data).into_owned()) } -#[tauri::command] -fn get_stream_data_as_image( - id: &str, - path: &str, - session: State, -) -> Result { - use base64::prelude::*; - - let file = session.get_file(id)?; - let img = retrieval::get_image_by_path(path, &file.cos_file)?; +fn encode_b64(img: RgbImage) -> Result { let mut writer = Cursor::new(Vec::new()); match img.write_to(&mut writer, ImageFormat::Jpeg) { Ok(_) => Ok(format!( @@ -238,6 +228,23 @@ fn get_stream_data_as_image( } } +#[tauri::command] +async fn get_stream_data_as_image(id: &str, path: &str, session: State<'_, Session>,) -> Result { + use base64::prelude::*; + + let file = session.get_file(id)?; + let img = retrieval::get_image_by_path(path, &file.cos_file)?; + encode_b64(img.into_rgb8()) +} + +#[tauri::command] +async fn get_page_by_num(id: &str, num: u32, session: State<'_, Session>) -> Result { + let file = session.get_file(id)?; + let mut renderer = Renderer::new(&file.cos_file, 150); + let img = renderer.render(num)?; + encode_b64(img.into_rgb8()) +} + #[tauri::command] fn get_prim_by_path( id: &str, @@ -285,7 +292,6 @@ fn get_prim_tree_by_path( paths: Vec, session: State, ) -> Result, String> { - let file = session.get_file(id)?; let results = paths @@ -632,7 +638,6 @@ impl PrimitiveTreeView { } #[tauri::command] fn get_xref_table(id: &str, session: State) -> Result { - let file = session.get_file(id)?; get_xref_table_model_with_file(&file.cos_file) } @@ -701,7 +706,6 @@ struct SessionFile { cos_file: CosFile, } - impl Session { fn load() -> Session { Session { @@ -711,15 +715,27 @@ impl Session { fn get_file(&self, id: &str) -> Result, String> { let lock = self.files.read().unwrap(); - lock.get(id).cloned().ok_or(format!(" File {} not found!", id)) + lock.get(id) + .cloned() + .ok_or(format!(" File {} not found!", id)) } fn get_all_files(&self) -> Vec> { - self.files.read().unwrap().values().map(|f| f.clone()).collect() + self.files + .read() + .unwrap() + .values() + .map(|f| f.clone()) + .collect() } fn get_all_file_ids(&self) -> Vec { - self.files.read().unwrap().keys().map(|f| f.clone()).collect() + self.files + .read() + .unwrap() + .keys() + .map(|f| f.clone()) + .collect() } fn handle_upload(&self, pdf_file: PdfFile, cos_file: CosFile) -> Result<(), String> { @@ -729,11 +745,11 @@ impl Session { Arc::new(SessionFile { pdf_file: pdf_file, cos_file: cos_file, - }, - )) { + }), + ) { Some(_) => Err("File could not be uploaded!".to_string()), None => Ok(()), - } + }; }; Err("Lock could not be acquired!".to_string()) } @@ -764,7 +780,8 @@ pub fn run() { get_xref_table, get_contents, get_stream_data_as_string, - get_stream_data_as_image + get_stream_data_as_image, + get_page_by_num ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/src/render.rs b/src-tauri/src/render.rs new file mode 100644 index 0000000..ff5c21d --- /dev/null +++ b/src-tauri/src/render.rs @@ -0,0 +1,53 @@ +extern crate pdf_render; + +use crate::{t, CosFile}; + +use image::{DynamicImage, RgbaImage}; +use pathfinder_geometry::transform2d::Transform2F; +use pathfinder_rasterize::Rasterizer; +use pdf_render::{render_page, Cache, SceneBackend}; + +pub struct Renderer<'a> { + file: &'a CosFile, + cache: Cache, + transform: Transform2F, +} + +impl<'a> Renderer<'a> { + pub fn new(file: &'a CosFile, dpi: u32) -> Renderer<'a> { + Renderer { + file, + cache: Cache::new(), + transform: Transform2F::from_scale(dpi as f32 / 25.4), + } + } + + pub fn render(&mut self, page_num: u32) -> Result { + let resolver = self.file.resolver(); + let page = t!(self.file.get_page(page_num - 1)); + let mut backend = SceneBackend::new(&mut self.cache); + t!(render_page(&mut backend, &resolver, &page, self.transform)); + let scene = backend.finish(); + let mut rasterizer = Rasterizer::new(); + Ok(DynamicImage::ImageRgba8(rasterizer.rasterize(scene, None))) + } +} + +pub fn render(file: &CosFile, page_num: u32) -> Result { + render_with_dpi(file, page_num, 300) +} +pub fn render_with_dpi(file: &CosFile, page_num: u32, dpi: u32) -> Result { + let resolver = file.resolver(); + let page = t!(file.get_page(page_num)); + + let mut cache = Cache::new(); + let mut backend = SceneBackend::new(&mut cache); + + t!(render_page( + &mut backend, + &resolver, + &page, + Transform2F::from_scale(dpi as f32 / 25.4) + )); + Ok(Rasterizer::new().rasterize(backend.finish(), None)) +} diff --git a/src-tauri/src/tests.rs b/src-tauri/src/tests.rs index 658e93b..f07739e 100644 --- a/src-tauri/src/tests.rs +++ b/src-tauri/src/tests.rs @@ -3,7 +3,7 @@ extern crate pdf; #[cfg(test)] mod tests { - use crate::retrieval::{get_image_by_path, get_pdf_stream_by_path_with_file}; + use crate::retrieval::get_image_by_path; use crate::{ get_prim_by_path_with_file, get_prim_model_by_path_with_file, get_prim_tree_by_path_with_file, get_stream_data_by_path_with_file, @@ -11,14 +11,14 @@ mod tests { }; use image::codecs::jpeg::JpegEncoder; - use image::imageops::FilterType; - use image::ImageFormat; + use image::{DynamicImage, ImageFormat, RgbaImage}; use pdf::content::{display_ops, serialize_ops, Op}; use pdf::file::FileOptions; use pdf::object::{Object, ObjectWrite, Page, PlainRef, Resolve}; use pdf::primitive::Primitive; use std::io::Cursor; use std::time::Instant; + macro_rules! timed { ($func_call:expr, $label:expr) => {{ let start = std::time::Instant::now(); @@ -29,14 +29,15 @@ mod tests { }}; } // Import items to be tested from the parent module - const FILE_PATH: &str = + const PDF_SPEC_PATH: &str = "/home/kschuettler/Dokumente/Scientific Papers/PDF Specification/ISO_32000-2_2020(en).pdf"; + const STUDY_402: &str = "/home/kschuettler/Dokumente/TestFiles/402Study.pdf"; #[test] fn test_read_x_ref() { let start = Instant::now(); let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); let resolver = file.resolver(); @@ -62,7 +63,7 @@ mod tests { #[test] fn test_read_tree() { let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); let mut path = Vec::new(); @@ -116,9 +117,7 @@ mod tests { #[test] fn test_read_by_path() { let file = timed!( - FileOptions::cached() - .open("/home/kschuettler/Dokumente/TestFiles/402Study.pdf") - .unwrap(), + FileOptions::cached().open(STUDY_402).unwrap(), "Loading file" ); let path = "/Page4/Resources/XObject/X13/Data"; @@ -145,7 +144,7 @@ mod tests { #[test] fn test_read_trailer() { let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); let mut file2 = timed!(FileOptions::uncached().storage(), "Loading storage"); @@ -166,18 +165,18 @@ mod tests { fn test_read_pdf_file() { use crate::to_pdf_file; let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); - let _pdf_file = timed!(to_pdf_file(FILE_PATH, &file), "pages 1"); - let pdf_file = timed!(to_pdf_file(FILE_PATH, &file), "pages 2"); + let _pdf_file = timed!(to_pdf_file(PDF_SPEC_PATH, &file), "pages 1"); + let pdf_file = timed!(to_pdf_file(PDF_SPEC_PATH, &file), "pages 2"); println!("{:?}", pdf_file); } #[test] fn test_read_contents() { let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); @@ -200,7 +199,7 @@ mod tests { #[test] fn test_read_stream() { let file = timed!( - FileOptions::cached().open(FILE_PATH).unwrap(), + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), "Loading file" ); let prim = timed!( @@ -252,4 +251,29 @@ mod tests { 100.0 - ((size as f32 / bytes as f32) * 100.0) ); } + + use crate::render::{render, render_with_dpi, Renderer}; + + #[test] + fn test_render() { + let file = timed!( + FileOptions::cached().open(PDF_SPEC_PATH).unwrap(), + "Loading file" + ); + let mut renderer = Renderer::new(&file, 150); + let mut rendered_pages: Vec = vec![]; + timed!( + for i in 0..1 { + let img = timed!(renderer.render(i), format!("render page {}", i)); + rendered_pages.push(img.unwrap()) + }, + "rendering some pages" + ); + timed!( + for (num, image) in rendered_pages.iter().enumerate() { + image.to_rgb8().save(format!("page_{}.jpg", num)).unwrap() + }, + "saving images" + ); + } } diff --git a/src/components/App.svelte b/src/components/App.svelte index eee28ef..df48bb1 100644 --- a/src/components/App.svelte +++ b/src/components/App.svelte @@ -1,44 +1,34 @@ - +
-
- +
+ (fState = state)} + >
-
+
- + - {#if fState} - + {:else} {/if} @@ -163,102 +145,102 @@ } :global(.splitpanes.forge-movable) - :global(.splitpanes__splitter:hover:before), + :global(.splitpanes__splitter:hover:before), :global(.splitpanes.forge-movable) - :global(.splitpanes__splitter:hover:after) { + :global(.splitpanes__splitter:hover:after) { background-color: var(--boundary-color); } :global(.splitpanes.forge-movable) - :global(.splitpanes__splitter:first-child) { + :global(.splitpanes__splitter:first-child) { cursor: auto; } :global(.forge-movable.splitpanes) - :global(.splitpanes) - :global(.splitpanes__splitter) { + :global(.splitpanes) + :global(.splitpanes__splitter) { z-index: 1; } :global(.forge-movable.splitpanes--vertical) - > :global(.splitpanes__splitter), + > :global(.splitpanes__splitter), :global(.forge-movable) - :global(.splitpanes--vertical) - > :global(.splitpanes__splitter) { + :global(.splitpanes--vertical) + > :global(.splitpanes__splitter) { width: 2px; border-left: 1px solid var(--boundary-color); cursor: col-resize; } :global(.forge-movable.splitpanes--vertical) - > :global(.splitpanes__splitter:before), + > :global(.splitpanes__splitter:before), :global(.forge-movable.splitpanes--vertical) - > :global(.splitpanes__splitter:after), + > :global(.splitpanes__splitter:after), :global(.forge-movable) - :global(.splitpanes--vertical) - > :global(.splitpanes__splitter:before), + :global(.splitpanes--vertical) + > :global(.splitpanes__splitter:before), :global(.forge-movable) - :global(.splitpanes--vertical) - > :global(.splitpanes__splitter:after) { + :global(.splitpanes--vertical) + > :global(.splitpanes__splitter:after) { transform: translateY(-50%); width: 1px; height: 40px; } :global(.forge-movable.splitpanes--vertical) - > :global(.splitpanes__splitter:before), + > :global(.splitpanes__splitter:before), :global(.forge-movable) - :global(.splitpanes--vertical) - > :global(.splitpanes__splitter:before) { + :global(.splitpanes--vertical) + > :global(.splitpanes__splitter:before) { margin-left: -2px; } :global(.forge-movable.splitpanes--vertical) - > :global(.splitpanes__splitter:after), + > :global(.splitpanes__splitter:after), :global(.forge-movable) - :global(.splitpanes--vertical) - > :global(.splitpanes__splitter:after) { + :global(.splitpanes--vertical) + > :global(.splitpanes__splitter:after) { margin-left: 1px; } :global(.forge-movable.splitpanes--horizontal) - > :global(.splitpanes__splitter), + > :global(.splitpanes__splitter), :global(.forge-movable) - :global(.splitpanes--horizontal) - > :global(.splitpanes__splitter) { + :global(.splitpanes--horizontal) + > :global(.splitpanes__splitter) { height: 2px; border-top: 1px solid var(--boundary-color); cursor: row-resize; } :global(.forge-movable.splitpanes--horizontal) - > :global(.splitpanes__splitter:before), + > :global(.splitpanes__splitter:before), :global(.forge-movable.splitpanes--horizontal) - > :global(.splitpanes__splitter:after), + > :global(.splitpanes__splitter:after), :global(.forge-movable) - :global(.splitpanes--horizontal) - > :global(.splitpanes__splitter:before), + :global(.splitpanes--horizontal) + > :global(.splitpanes__splitter:before), :global(.forge-movable) - :global(.splitpanes--horizontal) - > :global(.splitpanes__splitter:after) { + :global(.splitpanes--horizontal) + > :global(.splitpanes__splitter:after) { transform: translateX(-50%); width: 40px; height: 3px; } :global(.forge-movable.splitpanes--horizontal) - > :global(.splitpanes__splitter:before), + > :global(.splitpanes__splitter:before), :global(.forge-movable) - :global(.splitpanes--horizontal) - > :global(.splitpanes__splitter:before) { + :global(.splitpanes--horizontal) + > :global(.splitpanes__splitter:before) { margin-top: -2px; } :global(.forge-movable.splitpanes--horizontal) - > :global(.splitpanes__splitter:after), + > :global(.splitpanes__splitter:after), :global(.forge-movable) - :global(.splitpanes--horizontal) - > :global(.splitpanes__splitter:after) { + :global(.splitpanes--horizontal) + > :global(.splitpanes__splitter:after) { margin-top: 1px; } diff --git a/src/components/ContentsView.svelte b/src/components/ContentsView.svelte index 4e13d46..7d8fdfd 100644 --- a/src/components/ContentsView.svelte +++ b/src/components/ContentsView.svelte @@ -1,8 +1,6 @@ - + diff --git a/src/components/FileView.svelte b/src/components/FileView.svelte index ecd0917..df07cd9 100644 --- a/src/components/FileView.svelte +++ b/src/components/FileView.svelte @@ -4,7 +4,7 @@ import PrimitiveView from "./PrimitiveView.svelte"; import TreeView from "./TreeView.svelte"; import type FileViewState from "../models/FileViewState.svelte"; - import ContentsView from "./ContentsView.svelte"; + import PageView from "./PageView.svelte"; import type {PathSelectedEvent} from "../events/PathSelectedEvent"; import {onMount} from "svelte"; import NotificationModal from "./NotificationModal.svelte"; @@ -66,14 +66,12 @@
- {#if fState.treeMode} - - {/if} - {#if fState.pageMode} -
- -
- {/if} + {#if fState.treeMode} + + {/if} + {#if fState.pageMode} + + {/if}
diff --git a/src/components/PageView.svelte b/src/components/PageView.svelte new file mode 100644 index 0000000..f04db7e --- /dev/null +++ b/src/components/PageView.svelte @@ -0,0 +1,46 @@ + +{#if fState.container_prim && fState.container_prim.isPage() && state} + + +
+ +
+
+ + + +
+{:else } +

Please select a Page!

+{/if} + \ No newline at end of file diff --git a/src/components/RenderedPageView.svelte b/src/components/RenderedPageView.svelte new file mode 100644 index 0000000..89fe659 --- /dev/null +++ b/src/components/RenderedPageView.svelte @@ -0,0 +1,30 @@ + + +
+ {#if !imgB64} +
+ +
+ {:else} + + {/if} +
+ + diff --git a/src/components/StreamDataView.svelte b/src/components/StreamDataView.svelte index d61cf81..586b0f0 100644 --- a/src/components/StreamDataView.svelte +++ b/src/components/StreamDataView.svelte @@ -2,17 +2,16 @@ import type FileViewState from "../models/FileViewState.svelte"; import StreamEditor from "./StreamEditor.svelte"; - import type {StreamData} from "../models/StreamData"; + import type {StreamData} from "../models/StreamData.svelte"; + import RenderedPageView from "./RenderedPageView.svelte"; let {fState, editorHeight}: { fState: FileViewState, editorHeight: number } = $props() - let streamData: StreamData = $derived(fState.container_prim?.stream_data ?); + let streamData: StreamData = $derived(fState.container_prim?.stream_data?); {#if streamData.type === "Image"} -
- x-object -
+ {:else} { @@ -43,7 +42,7 @@ } -
+
diff --git a/src/components/TabBar.svelte b/src/components/TabBar.svelte index 202b25f..5a01dbf 100644 --- a/src/components/TabBar.svelte +++ b/src/components/TabBar.svelte @@ -1,8 +1,13 @@
- {#each files as file} -
+ {#each fStates as state} +
-
-
diff --git a/src/components/TitleBar.svelte b/src/components/TitleBar.svelte index 429aa0d..dd572f8 100644 --- a/src/components/TitleBar.svelte +++ b/src/components/TitleBar.svelte @@ -1,31 +1,186 @@ +
- +
-
- - +
+
+

Open Files

+
+
+ {#each fStates as state} + + {/each} +
+ {/if} +
+ +
+ +