diff --git a/.changes/pre.json b/.changes/pre.json index b2768b02..89f431c0 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -89,6 +89,7 @@ ".changes/websocket-fix-arg-name.md", ".changes/websocket-headers.md", ".changes/window-state-decorated.md", - ".changes/window-state-promise.md" + ".changes/window-state-promise.md", + ".changes/window-state-zero-positions.md" ] } diff --git a/.changes/window-state-zero-positions.md b/.changes/window-state-zero-positions.md new file mode 100644 index 00000000..14e89087 --- /dev/null +++ b/.changes/window-state-zero-positions.md @@ -0,0 +1,8 @@ +--- +"window-state": "patch" +--- + +Address a couple of issues with restoring positions: + +- Fix restoring window positions correctly when the top-left corner of the window was outside of the monitor. +- Fix restore maximization state only maximized on main monitor. diff --git a/.eslintrc.json b/.eslintrc.json index 96b58264..84c29bc5 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -7,7 +7,7 @@ "prettier", "eslint:recommended", "plugin:@typescript-eslint/recommended", - "plugin:security/recommended" + "plugin:security/recommended-legacy" ], "overrides": [], "parser": "@typescript-eslint/parser", diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index c85d3712..a2d61a7f 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -37,3 +37,5 @@ jobs: - uses: rustsec/audit-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} + # https://github.com/tauri-apps/plugins-workspace/issues/774 + ignore: ${{ github.event_name != 'schedule' && 'RUSTSEC-2023-0071' || '' }} diff --git a/.gitignore b/.gitignore index 9a05fc88..f6b47daf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ target node_modules -dist dist-js \ No newline at end of file diff --git a/.scripts/ci/check-license-header.js b/.scripts/ci/check-license-header.js index d21d168d..2f7b7909 100644 --- a/.scripts/ci/check-license-header.js +++ b/.scripts/ci/check-license-header.js @@ -10,6 +10,7 @@ const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservan SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: MIT`; const ignoredLicenses = [ + "// Copyright 2021 Flavio Oliveira", "// Copyright 2021 Jonas Kruckenberg", "// Copyright 2018-2023 the Deno authors.", ]; diff --git a/Cargo.lock b/Cargo.lock index 9800d601..71101a58 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -61,14 +61,14 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.9.4" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" +checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" dependencies = [ "aead 0.4.3", "aes 0.7.5", "cipher 0.3.0", - "ctr 0.8.0", + "ctr 0.7.0", "ghash 0.4.4", "subtle", ] @@ -605,12 +605,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.13.1" @@ -653,6 +647,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake2" version = "0.10.6" @@ -713,6 +719,30 @@ dependencies = [ "tracing", ] +[[package]] +name = "borsh" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667" +dependencies = [ + "borsh-derive", + "cfg_aliases 0.1.1", +] + +[[package]] +name = "borsh-derive" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" +dependencies = [ + "once_cell", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.39", + "syn_derive", +] + [[package]] name = "brotli" version = "3.4.0" @@ -742,14 +772,37 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-unit" -version = "4.0.19" +version = "5.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c" +checksum = "33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e" dependencies = [ + "rust_decimal", "serde", "utf8-width", ] +[[package]] +name = "bytecheck" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bytemuck" version = "1.14.0" @@ -776,16 +829,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.5.0" @@ -1128,7 +1171,7 @@ version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ - "bytes 1.5.0", + "bytes", "memchr", ] @@ -1358,9 +1401,9 @@ dependencies = [ [[package]] name = "ctr" -version = "0.8.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" dependencies = [ "cipher 0.3.0", ] @@ -1971,6 +2014,12 @@ dependencies = [ "libc", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futf" version = "0.1.5" @@ -2550,12 +2599,12 @@ version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ - "bytes 1.5.0", + "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.11", "indexmap 2.1.0", "slab", "tokio", @@ -2569,10 +2618,10 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6de6ca43eed186fd055214af06967b0a7a68336cefec7e8a4004e96efeaccb9e" dependencies = [ - "bytes 1.5.0", + "bytes", "fastrand 1.9.0", "futures-util", - "http", + "http 0.2.11", "tokio", "tracing", ] @@ -2583,7 +2632,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d4a1a1763e4f3e82ee9f1ecf2cf862b22cc7316ebe14684e42f94532b5ec64d" dependencies = [ - "bytes 1.5.0", + "bytes", "futures", "h3", "quinn", @@ -2698,7 +2747,18 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ - "bytes 1.5.0", + "bytes", + "fnv", + "itoa 1.0.9", +] + +[[package]] +name = "http" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes", "fnv", "itoa 1.0.9", ] @@ -2709,8 +2769,8 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.5.0", - "http", + "bytes", + "http 0.2.11", "pin-project-lite", ] @@ -2738,12 +2798,12 @@ version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-channel", "futures-core", "futures-util", "h2", - "http", + "http 0.2.11", "http-body", "httparse", "httpdate", @@ -2763,11 +2823,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", + "http 0.2.11", "hyper", - "rustls", + "rustls 0.21.9", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -2776,7 +2836,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.5.0", + "bytes", "hyper", "native-tls", "tokio", @@ -2956,7 +3016,7 @@ checksum = "4e04d492224bff6e97142f033d0a4383bcbc05918be1ff7b3abd2c1cc85205a2" dependencies = [ "aead 0.4.3", "aes 0.7.5", - "aes-gcm 0.9.4", + "aes-gcm 0.9.2", "autocfg", "blake2", "chacha20poly1305", @@ -3001,15 +3061,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipconfig" version = "0.3.2" @@ -4386,7 +4437,7 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash 0.4.1", + "universal-hash 0.4.0", ] [[package]] @@ -4398,7 +4449,7 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash 0.4.1", + "universal-hash 0.4.0", ] [[package]] @@ -4450,6 +4501,15 @@ dependencies = [ "toml_edit 0.20.7", ] +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.0", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -4495,6 +4555,26 @@ version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "publicsuffix" version = "2.2.3" @@ -4535,12 +4615,12 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" dependencies = [ - "bytes 1.5.0", + "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls", + "rustls 0.21.9", "thiserror", "tokio", "tracing", @@ -4552,11 +4632,11 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ - "bytes 1.5.0", + "bytes", "rand 0.8.5", "ring 0.16.20", "rustc-hash", - "rustls", + "rustls 0.21.9", "slab", "thiserror", "tinyvec", @@ -4569,7 +4649,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ - "bytes 1.5.0", + "bytes", "libc", "socket2 0.5.5", "tracing", @@ -4585,6 +4665,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.7.3" @@ -4684,7 +4770,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6435842fc2fea44b528719eb8c32203bbc1bb2f5b619fbe0c0a3d8350fd8d2a8" dependencies = [ - "bytes 1.5.0", + "bytes", "futures", "pin-project-lite", ] @@ -4762,6 +4848,15 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +[[package]] +name = "rend" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" version = "0.11.22" @@ -4770,7 +4865,7 @@ checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ "async-compression", "base64 0.21.5", - "bytes 1.5.0", + "bytes", "cookie", "cookie_store", "encoding_rs", @@ -4780,7 +4875,7 @@ dependencies = [ "h2", "h3", "h3-quinn", - "http", + "http 0.2.11", "http-body", "hyper", "hyper-rustls", @@ -4795,7 +4890,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls", + "rustls 0.21.9", "rustls-native-certs", "rustls-pemfile", "serde", @@ -4804,7 +4899,7 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-socks", "tokio-util", "tower-service", @@ -4814,7 +4909,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", + "webpki-roots 0.25.2", "winreg 0.50.0", ] @@ -4880,6 +4975,35 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "rkyv" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rsa" version = "0.9.4" @@ -4918,6 +5042,22 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rust_decimal" +version = "1.34.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "755392e1a2f77afd95580d3f0d0e94ac83eeeb7167552c9b5bca549e61a94d83" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -4974,10 +5114,24 @@ checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" dependencies = [ "log", "ring 0.17.5", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +dependencies = [ + "log", + "ring 0.17.5", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -4999,6 +5153,12 @@ dependencies = [ "base64 0.21.5", ] +[[package]] +name = "rustls-pki-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -5009,6 +5169,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring 0.17.5", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -5115,6 +5286,12 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "security-framework" version = "2.9.2" @@ -5381,6 +5558,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "similar" version = "2.3.0" @@ -5554,7 +5737,7 @@ dependencies = [ "ahash 0.8.6", "atoi", "byteorder", - "bytes 1.5.0", + "bytes", "crc", "crossbeam-queue", "dotenvy", @@ -5573,7 +5756,7 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rustls", + "rustls 0.21.9", "rustls-pemfile", "serde", "serde_json", @@ -5586,7 +5769,7 @@ dependencies = [ "tokio-stream", "tracing", "url", - "webpki-roots", + "webpki-roots 0.25.2", ] [[package]] @@ -5639,7 +5822,7 @@ dependencies = [ "base64 0.21.5", "bitflags 2.4.1", "byteorder", - "bytes 1.5.0", + "bytes", "crc", "digest 0.10.7", "dotenvy", @@ -5866,9 +6049,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "swift-rs" @@ -5903,6 +6086,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "sys-locale" version = "0.3.1" @@ -5999,6 +6194,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" version = "0.4.40" @@ -6023,7 +6224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ab20e6305a618700ba238b21afb938559fc86c217c4b025ec6626fe5e826007" dependencies = [ "anyhow", - "bytes 1.5.0", + "bytes", "cocoa 0.25.0", "dirs-next", "embed_plist", @@ -6032,7 +6233,7 @@ dependencies = [ "glob", "gtk", "heck", - "http", + "http 0.2.11", "http-range", "ico", "infer", @@ -6156,9 +6357,12 @@ version = "2.0.0-beta.0" dependencies = [ "authenticator", "base64 0.21.5", + "byteorder", + "bytes", "chrono", "log", "once_cell", + "openssl", "rand 0.8.5", "rusty-fork", "serde", @@ -6167,7 +6371,6 @@ dependencies = [ "tauri", "tauri-plugin", "thiserror", - "u2f", ] [[package]] @@ -6301,7 +6504,7 @@ version = "2.0.0-beta.0" dependencies = [ "data-url", "glob", - "http", + "http 0.2.11", "reqwest", "schemars", "serde", @@ -6317,7 +6520,7 @@ dependencies = [ name = "tauri-plugin-localhost" version = "2.0.0-beta.0" dependencies = [ - "http", + "http 1.0.0", "log", "serde", "serde_json", @@ -6516,7 +6719,7 @@ dependencies = [ "dirs-next", "flate2", "futures-util", - "http", + "http 0.2.11", "minisign-verify", "mockito", "percent-encoding", @@ -6557,6 +6760,7 @@ name = "tauri-plugin-websocket" version = "2.0.0-beta.0" dependencies = [ "futures-util", + "http 1.0.0", "log", "rand 0.8.5", "serde", @@ -6589,7 +6793,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d567f244e28e04e025646eb63c8552bfbc7d1c414753e5b22b7daf16510c2b5" dependencies = [ "gtk", - "http", + "http 0.2.11", "jni", "raw-window-handle 0.5.2", "serde", @@ -6608,7 +6812,7 @@ checksum = "18e7f9ba6cf789cd2aa347e08961c43e2e64ba7a3f896b79b8a61af7983a0322" dependencies = [ "cocoa 0.25.0", "gtk", - "http", + "http 0.2.11", "jni", "percent-encoding", "raw-window-handle 0.5.2", @@ -6850,7 +7054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", - "bytes 1.5.0", + "bytes", "libc", "mio", "num_cpus", @@ -6875,7 +7079,18 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.9", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.2", + "rustls-pki-types", "tokio", ] @@ -6904,19 +7119,20 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" dependencies = [ "futures-util", "log", "native-tls", - "rustls", + "rustls 0.22.2", + "rustls-pki-types", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.25.0", "tungstenite", - "webpki-roots", + "webpki-roots 0.26.1", ] [[package]] @@ -6925,7 +7141,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-sink", "pin-project-lite", @@ -7154,19 +7370,20 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" dependencies = [ "byteorder", - "bytes 1.5.0", + "bytes", "data-encoding", - "http", + "http 1.0.0", "httparse", "log", "native-tls", "rand 0.8.5", - "rustls", + "rustls 0.22.2", + "rustls-pki-types", "sha1", "thiserror", "url", @@ -7179,23 +7396,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "u2f" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2f285392366190c4d46823458f4543ac0f35174759c78e80c5baa39e1f7aa4f" -dependencies = [ - "base64 0.11.0", - "byteorder", - "bytes 0.4.12", - "chrono", - "openssl", - "serde", - "serde_derive", - "serde_json", - "time 0.1.45", -] - [[package]] name = "uds_windows" version = "1.0.2" @@ -7250,9 +7450,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "universal-hash" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ "generic-array", "subtle", @@ -7626,6 +7826,15 @@ version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +[[package]] +name = "webpki-roots" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "websocket-example" version = "0.1.0" @@ -8169,7 +8378,7 @@ dependencies = [ "gdkx11", "gtk", "html5ever", - "http", + "http 0.2.11", "javascriptcore-rs", "jni", "kuchikiki", @@ -8198,6 +8407,15 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" version = "2.21.0" diff --git a/examples/api/dist/assets/index.css b/examples/api/dist/assets/index.css new file mode 100644 index 00000000..e44838fe --- /dev/null +++ b/examples/api/dist/assets/index.css @@ -0,0 +1 @@ +*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firacode/v22/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgK_7SodY.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgIv7SodY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgKv7SodY.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgJf7SodY.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgKP7SodY.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bX2SlFPv1weGeLZDtgJv7S.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHk_fUWZA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHmvfUWZA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHkvfUWZA.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHnffUWZA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHkPfUWZA.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/firamono/v14/N0bS2SlFPv1weGeLZDtondvHnvfU.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFUkU1Z4Y.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFWkU1Z4Y.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFU0U1Z4Y.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFVUU1Z4Y.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFWUU1Z4Y.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/rubik/v28/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4iFV0U1.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}::-webkit-scrollbar-thumb{background-color:#3578e5}.dark ::-webkit-scrollbar-thumb{background-color:#67d6ed}code{font-size:.75rem;font-family:Fira Code,Fira Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;border-radius:.25rem;background-color:#d6d8da}.code-block{font-family:Fira Code,Fira Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem}.dark code{background-color:#282a2e}.i-codicon-bell-dot{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.994 7.875A4.008 4.008 0 0 1 12 8h-.01v.217c0 .909.143 1.818.442 2.691l.371 1.113h-9.63v-.012l.37-1.113a8.633 8.633 0 0 0 .443-2.691V6.004c0-.563.12-1.113.347-1.616c.227-.514.55-.969.969-1.34c.419-.382.91-.67 1.436-.837c.538-.18 1.1-.24 1.65-.18l.12.018a4 4 0 0 1 .673-.887a5.15 5.15 0 0 0-.697-.135c-.694-.072-1.4 0-2.07.227c-.67.215-1.28.574-1.794 1.053a4.923 4.923 0 0 0-1.208 1.675a5.067 5.067 0 0 0-.431 2.022v2.2a7.61 7.61 0 0 1-.383 2.37L2 12.343l.479.658h3.505c0 .526.215 1.04.586 1.412c.37.37.885.586 1.412.586c.526 0 1.04-.215 1.411-.586s.587-.886.587-1.412h3.505l.478-.658l-.586-1.77a7.63 7.63 0 0 1-.383-2.381v-.318ZM7.982 14.02a.997.997 0 0 0 .706-.3a.939.939 0 0 0 .287-.705H6.977c0 .263.107.515.299.706a.999.999 0 0 0 .706.299Z' clip-rule='evenodd'/%3E%3Cpath d='M12 7a3 3 0 1 0 0-6a3 3 0 0 0 0 6Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-chrome-close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='m7.116 8l-4.558 4.558l.884.884L8 8.884l4.558 4.558l.884-.884L8.884 8l4.558-4.558l-.884-.884L8 7.116L3.442 2.558l-.884.884L7.116 8z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-chrome-maximize{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M3 3v10h10V3H3zm9 9H4V4h8v8z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-chrome-minimize{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M14 8v1H3V8h11z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-chrome-restore{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M3 5v9h9V5H3zm8 8H4V6h7v7z'/%3E%3Cpath fill-rule='evenodd' d='M5 5h1V4h7v7h-1v1h2V3H5v2z' clip-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-clear-all{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m10 12.6l.7.7l1.6-1.6l1.6 1.6l.8-.7L13 11l1.7-1.6l-.8-.8l-1.6 1.7l-1.6-1.7l-.7.8l1.6 1.6l-1.6 1.6zM1 4h14V3H1v1zm0 3h14V6H1v1zm8 2.5V9H1v1h8v-.5zM9 13v-1H1v1h8z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-clippy{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M7 13.992H4v-9h8v2h1v-2.5l-.5-.5H11v-1h-1a2 2 0 0 0-4 0H4.94v1H3.5l-.5.5v10l.5.5H7v-1zm0-11.2a1 1 0 0 1 .8-.8a1 1 0 0 1 .58.06a.94.94 0 0 1 .45.36a1 1 0 1 1-1.75.94a1 1 0 0 1-.08-.56zm7.08 9.46L13 13.342v-5.35h-1v5.34l-1.08-1.08l-.71.71l1.94 1.93h.71l1.93-1.93l-.71-.71zm-5.92-4.16h.71l1.93 1.93l-.71.71l-1.08-1.08v5.34h-1v-5.35l-1.08 1.09l-.71-.71l1.94-1.93z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='m8 8.707l3.646 3.647l.708-.707L8.707 8l3.647-3.646l-.707-.708L8 7.293L4.354 3.646l-.707.708L7.293 8l-3.646 3.646l.707.708L8 8.707z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-cloud-download{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M11.957 6h.05a2.99 2.99 0 0 1 2.116.879a3.003 3.003 0 0 1 0 4.242a2.99 2.99 0 0 1-2.117.879v-1a2.002 2.002 0 0 0 0-4h-.914l-.123-.857a2.49 2.49 0 0 0-2.126-2.122A2.478 2.478 0 0 0 6.231 5.5l-.333.762l-.809-.189A2.49 2.49 0 0 0 4.523 6c-.662 0-1.297.263-1.764.732A2.503 2.503 0 0 0 4.523 11h.498v1h-.498a3.486 3.486 0 0 1-2.628-1.16a3.502 3.502 0 0 1 1.958-5.78a3.462 3.462 0 0 1 1.468.04a3.486 3.486 0 0 1 3.657-2.06A3.479 3.479 0 0 1 11.957 6zm-5.25 5.121l1.314 1.314V7h.994v5.4l1.278-1.279l.707.707l-2.146 2.147h-.708L6 11.829l.707-.708z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-files{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.5 0h-9L7 1.5V6H2.5L1 7.5v15.07L2.5 24h12.07L16 22.57V18h4.7l1.3-1.43V4.5L17.5 0zm0 2.12l2.38 2.38H17.5V2.12zm-3 20.38h-12v-15H7v9.07L8.5 18h6v4.5zm6-6h-12v-15H16V6h4.5v10.5z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-link-external{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M1.5 1H6v1H2v12h12v-4h1v4.5l-.5.5h-13l-.5-.5v-13l.5-.5z'/%3E%3Cpath d='M15 1.5V8h-1V2.707L7.243 9.465l-.707-.708L13.293 2H8V1h6.5l.5.5z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-menu{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 5H0V4h16v1zm0 8H0v-1h16v1zm0-4.008H0V8h16v.992z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-multiple-windows{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='m6 1.5l.5-.5h8l.5.5v7l-.5.5H12V8h2V4H7v1H6V1.5zM7 2v1h7V2H7zM1.5 7l-.5.5v7l.5.5h8l.5-.5v-7L9.5 7h-8zM2 9V8h7v1H2zm0 1h7v4H2v-4z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-radio-tower{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M2.998 5.58a5.55 5.55 0 0 1 1.62-3.88l-.71-.7a6.45 6.45 0 0 0 0 9.16l.71-.7a5.55 5.55 0 0 1-1.62-3.88zm1.06 0a4.42 4.42 0 0 0 1.32 3.17l.71-.71a3.27 3.27 0 0 1-.76-1.12a3.45 3.45 0 0 1 0-2.67a3.22 3.22 0 0 1 .76-1.13l-.71-.71a4.46 4.46 0 0 0-1.32 3.17zm7.65 3.21l-.71-.71c.33-.32.59-.704.76-1.13a3.449 3.449 0 0 0 0-2.67a3.22 3.22 0 0 0-.76-1.13l.71-.7a4.468 4.468 0 0 1 0 6.34zM13.068 1l-.71.71a5.43 5.43 0 0 1 0 7.74l.71.71a6.45 6.45 0 0 0 0-9.16zM9.993 5.43a1.5 1.5 0 0 1-.245.98a2 2 0 0 1-.27.23l3.44 7.73l-.92.4l-.77-1.73h-5.54l-.77 1.73l-.92-.4l3.44-7.73a1.52 1.52 0 0 1-.33-1.63a1.55 1.55 0 0 1 .56-.68a1.5 1.5 0 0 1 2.325 1.1zm-1.595-.34a.52.52 0 0 0-.25.14a.52.52 0 0 0-.11.22a.48.48 0 0 0 0 .29c.04.09.102.17.18.23a.54.54 0 0 0 .28.08a.51.51 0 0 0 .5-.5a.54.54 0 0 0-.08-.28a.58.58 0 0 0-.23-.18a.48.48 0 0 0-.29 0zm.23 2.05h-.27l-.87 1.94h2l-.86-1.94zm2.2 4.94l-.89-2h-2.88l-.89 2h4.66z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-record-keys{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M14 3H3a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm0 8H3V4h11v7zm-3-6h-1v1h1V5zm-1 2H9v1h1V7zm2-2h1v1h-1V5zm1 4h-1v1h1V9zM6 9h5v1H6V9zm7-2h-2v1h2V7zM8 5h1v1H8V5zm0 2H7v1h1V7zM4 9h1v1H4V9zm0-4h1v1H4V5zm3 0H6v1h1V5zM4 7h2v1H4V7z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-terminal{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M1.5 3L3 1.5h18L22.5 3v18L21 22.5H3L1.5 21V3ZM3 3v18h18V3H3Z' clip-rule='evenodd'/%3E%3Cpath d='M7.06 7.5L6 8.56l4.243 4.243L6 17.046l1.06 1.06L12 13.168v-.728L7.06 7.5Zm4.94 9h6V18h-6z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-codicon-terminal-bash{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 16 16' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M13.655 3.56L8.918.75a1.785 1.785 0 0 0-1.82 0L2.363 3.56a1.889 1.889 0 0 0-.921 1.628v5.624a1.889 1.889 0 0 0 .913 1.627l4.736 2.812a1.785 1.785 0 0 0 1.82 0l4.736-2.812a1.888 1.888 0 0 0 .913-1.627V5.188a1.889 1.889 0 0 0-.904-1.627zm-3.669 8.781v.404a.149.149 0 0 1-.07.124l-.239.137c-.038.02-.07 0-.07-.053v-.396a.78.78 0 0 1-.545.053a.073.073 0 0 1-.027-.09l.086-.365a.153.153 0 0 1 .071-.096a.048.048 0 0 1 .038 0a.662.662 0 0 0 .497-.063a.662.662 0 0 0 .37-.567c0-.206-.112-.292-.384-.293c-.344 0-.661-.066-.67-.574A1.47 1.47 0 0 1 9.6 9.437V9.03a.147.147 0 0 1 .07-.126l.231-.147c.038-.02.07 0 .07.054v.409a.754.754 0 0 1 .453-.055a.073.073 0 0 1 .03.095l-.081.362a.156.156 0 0 1-.065.09a.055.055 0 0 1-.035 0a.6.6 0 0 0-.436.072a.549.549 0 0 0-.331.486c0 .185.098.242.425.248c.438 0 .627.199.632.639a1.568 1.568 0 0 1-.576 1.185zm2.481-.68a.094.094 0 0 1-.036.092l-1.198.727a.034.034 0 0 1-.04.003a.035.035 0 0 1-.016-.037v-.31a.086.086 0 0 1 .055-.076l1.179-.706a.035.035 0 0 1 .056.035v.273zm.827-6.914L8.812 7.515c-.559.331-.97.693-.97 1.367v5.52c0 .404.165.662.413.741a1.465 1.465 0 0 1-.248.025c-.264 0-.522-.072-.748-.207L2.522 12.15a1.558 1.558 0 0 1-.75-1.338V5.188a1.558 1.558 0 0 1 .75-1.34l4.738-2.81a1.46 1.46 0 0 1 1.489 0l4.736 2.812a1.548 1.548 0 0 1 .728 1.083c-.154-.334-.508-.427-.92-.185h.002z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-broadcast{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M128 88a40 40 0 1 0 40 40a40 40 0 0 0-40-40Zm0 64a24 24 0 1 1 24-24a24 24 0 0 1-24 24Zm73.71 7.14a80 80 0 0 1-14.08 22.2a8 8 0 0 1-11.92-10.67a63.95 63.95 0 0 0 0-85.33a8 8 0 1 1 11.92-10.67a80.08 80.08 0 0 1 14.08 84.47ZM69 103.09a64 64 0 0 0 11.26 67.58a8 8 0 0 1-11.92 10.67a79.93 79.93 0 0 1 0-106.67a8 8 0 1 1 11.95 10.67A63.77 63.77 0 0 0 69 103.09ZM248 128a119.58 119.58 0 0 1-34.29 84a8 8 0 1 1-11.42-11.2a103.9 103.9 0 0 0 0-145.56A8 8 0 1 1 213.71 44A119.58 119.58 0 0 1 248 128ZM53.71 200.78A8 8 0 1 1 42.29 212a119.87 119.87 0 0 1 0-168a8 8 0 1 1 11.42 11.2a103.9 103.9 0 0 0 0 145.56Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-globe-hemisphere-west{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm88 104a87.62 87.62 0 0 1-6.4 32.94l-44.7-27.49a15.92 15.92 0 0 0-6.24-2.23l-22.82-3.08a16.11 16.11 0 0 0-16 7.86h-8.72l-3.8-7.86a15.91 15.91 0 0 0-11-8.67l-8-1.73L96.14 104h16.71a16.06 16.06 0 0 0 7.73-2l12.25-6.76a16.62 16.62 0 0 0 3-2.14l26.91-24.34A15.93 15.93 0 0 0 166 49.1l-.36-.65A88.11 88.11 0 0 1 216 128Zm-72.69-86.66L152 56.9l-26.91 24.34L112.85 88H96.14a16 16 0 0 0-13.88 8l-8.73 15.23l-10.15-27.04l10.94-25.87a87.87 87.87 0 0 1 69-17ZM40 128a87.53 87.53 0 0 1 8.54-37.8l11.34 30.27a16 16 0 0 0 11.62 10l21.43 4.61l3.81 7.92a16.09 16.09 0 0 0 14.4 9h1.48l-7.23 16.23a16 16 0 0 0 2.86 17.37l.14.14l19.61 20.2l-1.94 10A88.11 88.11 0 0 1 40 128Zm102.58 86.78l1.13-5.81a16.09 16.09 0 0 0-4-13.9a1.85 1.85 0 0 1-.14-.14L120 174.74L133.7 144l22.82 3.08l45.72 28.12a88.18 88.18 0 0 1-59.66 39.58Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-hand-waving{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m220.2 100l-18-31.18a28 28 0 0 0-47.3-1.92l-15.34-26.59a28 28 0 0 0-48.12-.63a28 28 0 0 0-43 34.78l3.34 5.79a28 28 0 0 0-22 41.92l38 65.82a87.46 87.46 0 0 0 53.43 41a88.56 88.56 0 0 0 22.92 3A88 88 0 0 0 220.2 100Zm-6.67 62.63A72 72 0 0 1 81.63 180l-38-65.82a12 12 0 0 1 20.79-12l22 38.1a8 8 0 1 0 13.85-8l-38-65.81a12 12 0 0 1 13.5-17.59a11.9 11.9 0 0 1 7.29 5.59l34 58.89a8 8 0 0 0 13.85-8l-26-45a12 12 0 0 1 20.78-12L160 107.78a48.08 48.08 0 0 0-11 61a8 8 0 0 0 13.86-8a32 32 0 0 1 11.71-43.71a8 8 0 0 0 2.93-10.93l-10-17.32a12 12 0 0 1 20.78-12l18 31.18a71.49 71.49 0 0 1 7.25 54.62Zm-29.26-132.7a8 8 0 0 1 9.8-5.66c15.91 4.27 29 14.11 36.86 27.73a8 8 0 0 1-13.86 8c-5.72-9.92-15.36-17.12-27.14-20.27a8 8 0 0 1-5.66-9.8ZM80.91 237a8 8 0 0 1-11.24 1.33c-11-8.69-20.11-19.58-28.6-34.28a8 8 0 0 1 13.86-8c7.44 12.88 15.27 22.32 24.65 29.72A8 8 0 0 1 80.91 237Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-moon{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M233.54 142.23a8 8 0 0 0-8-2a88.08 88.08 0 0 1-109.8-109.8a8 8 0 0 0-10-10a104.84 104.84 0 0 0-52.91 37A104 104 0 0 0 136 224a103.09 103.09 0 0 0 62.52-20.88a104.84 104.84 0 0 0 37-52.91a8 8 0 0 0-1.98-7.98Zm-44.64 48.11A88 88 0 0 1 65.66 67.11a89 89 0 0 1 31.4-26A106 106 0 0 0 96 56a104.11 104.11 0 0 0 104 104a106 106 0 0 0 14.92-1.06a89 89 0 0 1-26.02 31.4Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-scan{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 40v40a8 8 0 0 1-16 0V48h-32a8 8 0 0 1 0-16h40a8 8 0 0 1 8 8ZM80 208H48v-32a8 8 0 0 0-16 0v40a8 8 0 0 0 8 8h40a8 8 0 0 0 0-16Zm136-40a8 8 0 0 0-8 8v32h-32a8 8 0 0 0 0 16h40a8 8 0 0 0 8-8v-40a8 8 0 0 0-8-8ZM40 88a8 8 0 0 0 8-8V48h32a8 8 0 0 0 0-16H40a8 8 0 0 0-8 8v40a8 8 0 0 0 8 8Zm128 96H88a16 16 0 0 1-16-16V88a16 16 0 0 1 16-16h80a16 16 0 0 1 16 16v80a16 16 0 0 1-16 16Zm-80-16h80V88H88Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.i-ph-sun{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M120 40V16a8 8 0 0 1 16 0v24a8 8 0 0 1-16 0Zm72 88a64 64 0 1 1-64-64a64.07 64.07 0 0 1 64 64Zm-16 0a48 48 0 1 0-48 48a48.05 48.05 0 0 0 48-48ZM58.34 69.66a8 8 0 0 0 11.32-11.32l-16-16a8 8 0 0 0-11.32 11.32Zm0 116.68l-16 16a8 8 0 0 0 11.32 11.32l16-16a8 8 0 0 0-11.32-11.32ZM192 72a8 8 0 0 0 5.66-2.34l16-16a8 8 0 0 0-11.32-11.32l-16 16A8 8 0 0 0 192 72Zm5.66 114.34a8 8 0 0 0-11.32 11.32l16 16a8 8 0 0 0 11.32-11.32ZM48 128a8 8 0 0 0-8-8H16a8 8 0 0 0 0 16h24a8 8 0 0 0 8-8Zm80 80a8 8 0 0 0-8 8v24a8 8 0 0 0 16 0v-24a8 8 0 0 0-8-8Zm112-88h-24a8 8 0 0 0 0 16h24a8 8 0 0 0 0-16Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.container{width:100%}.note{position:relative;display:inline-flex;align-items:center;border-left-width:4px;--un-border-opacity:1;border-color:rgb(53 120 229 / var(--un-border-opacity));border-radius:.25rem;background-color:#3578e51a;padding:.5rem;text-decoration:none}.note-red{position:relative;display:inline-flex;align-items:center;border-left-width:4px;--un-border-opacity:1;border-color:rgb(53 120 229 / var(--un-border-opacity));border-radius:.25rem;background-color:#3578e51a;background-color:#b91c1c1a;padding:.5rem;text-decoration:none}.nv{position:relative;display:flex;align-items:center;border-radius:.25rem;padding:.5rem;--un-text-opacity:1;color:rgb(194 197 202 / var(--un-text-opacity));text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:125ms}.nv_selected{position:relative;display:flex;align-items:center;border-left-width:4px;border-radius:.25rem;--un-bg-opacity:.05;background-color:hsla(0,0%,100%,var(--un-bg-opacity));padding:.5rem;--un-text-opacity:1;color:rgb(194 197 202 / var(--un-text-opacity));color:rgb(53 120 229 / var(--un-text-opacity));text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:125ms}.input{height:2.5rem;display:flex;align-items:center;border-radius:.25rem;border-style:none;--un-bg-opacity:1;background-color:rgb(233 236 239 / var(--un-bg-opacity));padding:.5rem;--un-text-opacity:1;color:rgb(28 30 33 / var(--un-text-opacity));--un-shadow:var(--un-shadow-inset) 0 4px 6px -1px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 2px 4px -2px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent;outline-offset:2px}.btn{-webkit-user-select:none;user-select:none;border-radius:.25rem;border-style:none;--un-bg-opacity:1;background-color:rgb(53 120 229 / var(--un-bg-opacity));padding:.5rem;--un-text-opacity:1;color:rgb(28 30 33 / var(--un-text-opacity));color:rgb(255 255 255 / var(--un-text-opacity));font-weight:400;--un-shadow:var(--un-shadow-inset) 0 4px 6px -1px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 2px 4px -2px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent;outline-offset:2px}.nv:hover,.nv_selected:hover{border-left-width:4px;--un-bg-opacity:.05;background-color:hsla(0,0%,100%,var(--un-bg-opacity));--un-text-opacity:1;color:rgb(53 120 229 / var(--un-text-opacity))}.dark .note{--un-border-opacity:1;border-color:rgb(103 214 237 / var(--un-border-opacity));background-color:#67d6ed1a}.dark .note-red{--un-border-opacity:1;border-color:rgb(103 214 237 / var(--un-border-opacity));background-color:#67d6ed1a;background-color:#b91c1c1a}.dark .btn{--un-bg-opacity:1;background-color:rgb(103 214 237 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(28 30 33 / var(--un-text-opacity));font-weight:600}.dark .input{--un-bg-opacity:1;background-color:rgb(36 37 38 / var(--un-bg-opacity));--un-text-opacity:1;color:rgb(227 227 227 / var(--un-text-opacity))}.btn:hover{--un-bg-opacity:1;background-color:rgb(45 102 195 / var(--un-bg-opacity))}.dark .btn:hover{--un-bg-opacity:1;background-color:rgb(57 202 232 / var(--un-bg-opacity))}.btn:active{--un-bg-opacity:1;background-color:rgb(37 84 160 / var(--un-bg-opacity))}.dark .btn:active{--un-bg-opacity:1;background-color:rgb(25 181 213 / var(--un-bg-opacity))}.dark .note-red:after{--un-bg-opacity:1;background-color:rgb(185 28 28 / var(--un-bg-opacity))}.note-red:after{--un-bg-opacity:1;background-color:rgb(185 28 28 / var(--un-bg-opacity))}.dark .nv_selected,.dark .nv:hover,.dark .nv_selected:hover{--un-text-opacity:1;color:rgb(103 214 237 / var(--un-text-opacity))}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.z-2000{z-index:2000}.grid{display:grid}.grid-rows-\[2fr_auto\]{grid-template-rows:2fr auto}.grid-rows-\[2px_2rem_1fr\]{grid-template-rows:2px 2rem 1fr}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mr-2{margin-right:.5rem}.block{display:block}.contents{display:contents}.hidden{display:none}.children-h-10>*,.children\:h10>*{height:2.5rem}.children\:h-100\%>*,.h-100\%{height:100%}.children\:w-12>*{width:3rem}.h-15rem{height:15rem}.h-2px{height:2px}.h-8{height:2rem}.h-85\%{height:85%}.h-auto{height:auto}.h-screen{height:100vh}.w-100\%{width:100%}.w-8{width:2rem}.w-screen{width:100vw}.flex{display:flex}.children\:inline-flex>*{display:inline-flex}.flex-1{flex:1 1 0%}.children-flex-none>*{flex:none}.children\:grow>*,.grow{flex-grow:1}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in 1s linear 1}.animate-duration-300ms{animation-duration:.3s}.cursor-pointer{cursor:pointer}.cursor-ns-resize{cursor:ns-resize}.select-text{-webkit-user-select:text;user-select:text}.select-none{-webkit-user-select:none;user-select:none}.children\:items-center>*,.items-center{align-items:center}.self-center{align-self:center}.children\:justify-center>*,.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.rd-1{border-radius:.25rem}.rd-8{border-radius:2rem}.bg-accent{--un-bg-opacity:1;background-color:rgb(53 120 229 / var(--un-bg-opacity))}.bg-black\/20{background-color:#0003}.bg-darkPrimaryLighter{--un-bg-opacity:1;background-color:rgb(36 37 38 / var(--un-bg-opacity))}.bg-primary{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.bg-white\/5{background-color:#ffffff0d}.dark .dark\:bg-darkAccent{--un-bg-opacity:1;background-color:rgb(103 214 237 / var(--un-bg-opacity))}.dark .dark\:bg-darkPrimary{--un-bg-opacity:1;background-color:rgb(27 27 29 / var(--un-bg-opacity))}.dark .dark\:hover\:bg-darkHoverOverlay:hover{--un-bg-opacity:.05;background-color:hsla(0,0%,100%,var(--un-bg-opacity))}.dark .dark\:hover\:bg-red-700:hover{--un-bg-opacity:1;background-color:rgb(185 28 28 / var(--un-bg-opacity))}.hover\:bg-hoverOverlay:hover{--un-bg-opacity:.05;background-color:rgba(0,0,0,var(--un-bg-opacity))}.hover\:bg-red-700:hover{--un-bg-opacity:1;background-color:rgb(185 28 28 / var(--un-bg-opacity))}.active\:bg-accentDark:active{--un-bg-opacity:1;background-color:rgb(48 108 206 / var(--un-bg-opacity))}.active\:bg-hoverOverlay\/25:active{background-color:#00000040}.active\:bg-hoverOverlayDarker:active{--un-bg-opacity:.1;background-color:rgba(0,0,0,var(--un-bg-opacity))}.active\:bg-red-700\/90:active{background-color:#b91c1ce6}.dark .dark\:active\:bg-darkAccentDark:active{--un-bg-opacity:1;background-color:rgb(73 206 233 / var(--un-bg-opacity))}.dark .dark\:active\:bg-darkHoverOverlay\/25:active{background-color:#ffffff40}.dark .dark\:active\:bg-darkHoverOverlayDarker:active{--un-bg-opacity:.1;background-color:hsla(0,0%,100%,var(--un-bg-opacity))}.dark .dark\:active\:bg-red-700\/90:active{background-color:#b91c1ce6}.p-1{padding:.25rem}.p-7{padding:1.75rem}.px{padding-left:1rem;padding-right:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.children-pb-2>*{padding-bottom:.5rem}.children-pt8>*{padding-top:2rem}.pl-2{padding-left:.5rem}.all\:text-xs *{font-size:.75rem;line-height:1rem}.dark .dark\:text-darkAccent{--un-text-opacity:1;color:rgb(103 214 237 / var(--un-text-opacity))}.dark .dark\:text-darkPrimaryText,.text-darkPrimaryText{--un-text-opacity:1;color:rgb(227 227 227 / var(--un-text-opacity))}.text-accent{--un-text-opacity:1;color:rgb(53 120 229 / var(--un-text-opacity))}.text-primaryText{--un-text-opacity:1;color:rgb(28 30 33 / var(--un-text-opacity))}.hover\:text-darkPrimaryText:hover,.active\:text-darkPrimaryText:active{--un-text-opacity:1;color:rgb(227 227 227 / var(--un-text-opacity))}.font-semibold{font-weight:600}.all\:font-mono *{font-family:Fira Code,Fira Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors-250{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (max-width: 639.9px){.lt-sm\:absolute{position:absolute}.lt-sm\:z-1999{z-index:1999}.lt-sm\:h-screen{height:100vh}.lt-sm\:flex{display:flex}.lt-sm\:pl-10{padding-left:2.5rem}.lt-sm\:shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.lt-sm\:shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.lt-sm\:transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}}*:not(h1,h2,h3,h4,h5,h6){margin:0;padding:0}*{box-sizing:border-box;font-family:Rubik,sans-serif}::-webkit-scrollbar{width:.25rem;height:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:.25rem}code{padding:.05rem .25rem}code.code-block{padding:.5rem}#sidebar{width:18.75rem}@media screen and (max-width: 640px){#sidebar{--translate-x: -18.75rem;transform:translate(var(--translate-x))}}.sidebar-toggle{margin-top:.5rem;margin-left:.5rem}body{overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#sidebar,#console{padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}.transparent{background-color:transparent}.svelte-6z96o6:where(._jsonList){list-style:none;margin:0;padding:0;padding-left:var(--jsonPaddingLeft, 1rem);border-left:var(--jsonBorderLeft, 1px dotted)}.svelte-6z96o6:where(._jsonBkt){color:var(--jsonBracketColor, currentcolor)}.svelte-6z96o6:where(._jsonBkt):not(.empty):hover{cursor:pointer;background:var(--jsonBracketHoverBackground, #e5e7eb)}.svelte-6z96o6:where(._jsonSep){color:var(--jsonSeparatorColor, currentcolor)}.svelte-6z96o6:where(._jsonKey){color:var(--jsonKeyColor, currentcolor)}.svelte-6z96o6:where(._jsonVal){color:var(--jsonValColor, #9ca3af)}:where(._jsonVal).string.svelte-6z96o6{color:var(--jsonValStringColor, #059669)}:where(._jsonVal).number.svelte-6z96o6{color:var(--jsonValNumberColor, #d97706)}:where(._jsonVal).boolean.svelte-6z96o6{color:var(--jsonValBooleanColor, #2563eb)}.progress.svelte-1xfvu87.svelte-1xfvu87{width:100%;height:50px;position:relative;margin-top:5%}.progress.svelte-1xfvu87>span.svelte-1xfvu87{font-size:1.2rem}.progress-bar.svelte-1xfvu87.svelte-1xfvu87{height:30px;background-color:#e47d07;border:1px solid #333}.invisible.svelte-u74si6.svelte-u74si6{display:none}.full-height.svelte-u74si6.svelte-u74si6{height:100%}p.svelte-u74si6.svelte-u74si6{color:#fff;font-family:sans-serif;text-align:center;font-weight:600}.container.svelte-u74si6.svelte-u74si6{width:100%;height:100%;overflow:hidden}.container.svelte-u74si6.svelte-u74si6{display:flex}.relative.svelte-u74si6.svelte-u74si6{position:relative;display:flex;flex-direction:row;justify-content:space-between;z-index:1}.square.svelte-u74si6.svelte-u74si6{width:100%;position:relative;overflow:hidden;transition:.3s}.square.svelte-u74si6.svelte-u74si6:after{content:"";top:0;display:block;padding-bottom:100%}.square.svelte-u74si6>div.svelte-u74si6{position:absolute;top:0;left:0;bottom:0;right:0}.surround-cover.svelte-u74si6.svelte-u74si6{box-shadow:0 0 0 99999px #00000080}.barcode-scanner--area--container.svelte-u74si6.svelte-u74si6{width:80%;max-width:min(500px,80vh);margin:auto}.barcode-scanner--area--outer.svelte-u74si6.svelte-u74si6{display:flex;border-radius:1em}.barcode-scanner--area--inner.svelte-u74si6.svelte-u74si6{width:100%;margin:1rem;border:2px solid #fff;box-shadow:0 0 2px 1px #00000080,inset 0 0 2px 1px #00000080;border-radius:1rem}.scanner-background.svelte-u74si6.svelte-u74si6{background:linear-gradient(45deg,#673ab7,transparent);background-position:45% 50%;background-size:cover;background-repeat:no-repeat} diff --git a/examples/api/dist/assets/index.js b/examples/api/dist/assets/index.js new file mode 100644 index 00000000..9d187ddd --- /dev/null +++ b/examples/api/dist/assets/index.js @@ -0,0 +1,20 @@ +var Rn=Object.defineProperty;var Pn=(t,e,n)=>e in t?Rn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Te=(t,e,n)=>(Pn(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))i(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();function x(){}function on(t){return t()}function _t(){return Object.create(null)}function $(t){t.forEach(on)}function rn(t){return typeof t=="function"}function se(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Be;function On(t,e){return t===e?!0:(Be||(Be=document.createElement("a")),Be.href=e,t===Be.href)}function In(t){return Object.keys(t).length===0}function Un(t,...e){if(t==null){for(const i of e)i(void 0);return x}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function an(t,e,n){t.$$.on_destroy.push(Un(e,n))}function a(t,e){t.appendChild(e)}function g(t,e,n){t.insertBefore(e,n||null)}function m(t){t.parentNode&&t.parentNode.removeChild(t)}function We(t,e){for(let n=0;nt.removeEventListener(e,n,i)}function Nn(t){return function(e){return e.preventDefault(),t.call(this,e)}}function c(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function zn(t){return Array.from(t.childNodes)}function he(t,e){e=""+e,t.data!==e&&(t.data=e)}function q(t,e){t.value=e??""}function Ve(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,i?"important":"")}function et(t,e,n){for(let i=0;ie.__value)}function be(t,e,n){t.classList.toggle(e,!!n)}class jn{constructor(e=!1){Te(this,"is_svg",!1);Te(this,"e");Te(this,"n");Te(this,"t");Te(this,"a");this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,n,i=null){this.e||(this.is_svg?this.e=Dn(n.nodeName):this.e=d(n.nodeType===11?"TEMPLATE":n.nodeName),this.t=n.tagName!=="TEMPLATE"?n:n.content,this.c(e)),this.i(i)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let n=0;nt.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),ze=e}const Ke=new Set;let Oe;function st(){Oe={r:0,c:[],p:Oe}}function ot(){Oe.r||$(Oe.c),Oe=Oe.p}function _e(t,e){t&&t.i&&(Ke.delete(t),t.i(e))}function Le(t,e,n,i){if(t&&t.o){if(Ke.has(t))return;Ke.add(t),Oe.c.push(()=>{Ke.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}function ge(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function tt(t){t&&t.c()}function Xe(t,e,n){const{fragment:i,after_update:l}=t.$$;i&&i.m(e,n),je(()=>{const s=t.$$.on_mount.map(on).filter(rn);t.$$.on_destroy?t.$$.on_destroy.push(...s):$(s),t.$$.on_mount=[]}),l.forEach(je)}function Ye(t,e){const n=t.$$;n.fragment!==null&&(qn(n.after_update),$(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Vn(t,e){t.$$.dirty[0]===-1&&(Ne.push(t),pn(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const k=b.length?b[0]:p;return f.ctx&&l(f.ctx[w],f.ctx[w]=k)&&(!f.skip_bound&&f.bound[w]&&f.bound[w](k),h&&Vn(t,w)),p}):[],f.update(),h=!0,$(f.before_update),f.fragment=i?i(f.ctx):!1,e.target){if(e.hydrate){const w=zn(e.target);f.fragment&&f.fragment.l(w),w.forEach(m)}else f.fragment&&f.fragment.c();e.intro&&_e(t.$$.fragment),Xe(t,e.target,e.anchor),hn()}Fe(u)}class de{constructor(){Te(this,"$$");Te(this,"$$set")}$destroy(){Ye(this,1),this.$destroy=x}$on(e,n){if(!rn(n))return x;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const l=i.indexOf(n);l!==-1&&i.splice(l,1)}}$set(e){this.$$set&&!In(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Fn="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Fn);const De=[];function bn(t,e=x){let n;const i=new Set;function l(r){if(se(t,r)&&(t=r,n)){const u=!De.length;for(const f of i)f[1](),De.push(f,t);if(u){for(let f=0;f{i.delete(f),i.size===0&&n&&(n(),n=null)}}return{set:l,update:s,subscribe:o}}function ft(t,e,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(t):i?i.value:e.get(t)}function mn(t,e,n,i,l){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!l)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!l:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?l.call(t,n):l?l.value=n:e.set(t,n),n}var qe,$e;function gn(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}class Ze{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,qe.set(this,()=>{}),this.id=gn(e=>{ft(this,qe,"f").call(this,e)})}set onmessage(e){mn(this,qe,e,"f")}get onmessage(){return ft(this,qe,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}qe=new WeakMap;async function C(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}function xn(t,e="asset"){return window.__TAURI_INTERNALS__.convertFileSrc(t,e)}class _n{get rid(){return ft(this,$e,"f")}constructor(e){$e.set(this,void 0),mn(this,$e,e,"f")}async close(){return C("plugin:resources|close",{rid:this.rid})}}$e=new WeakMap;async function Gn(t,e,n=[],i){typeof n=="object"&&Object.freeze(n);const l=new Ze;return l.onmessage=t,C("plugin:shell|execute",{program:e,args:n,options:i,onEvent:l})}class at{constructor(){this.eventListeners=Object.create(null)}addListener(e,n){return this.on(e,n)}removeListener(e,n){return this.off(e,n)}on(e,n){return e in this.eventListeners?this.eventListeners[e].push(n):this.eventListeners[e]=[n],this}once(e,n){const i=l=>{this.removeListener(e,i),n(l)};return this.addListener(e,i)}off(e,n){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter(i=>i!==n)),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,n){if(e in this.eventListeners){const i=this.eventListeners[e];for(const l of i)l(n);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,n){return e in this.eventListeners?this.eventListeners[e].unshift(n):this.eventListeners[e]=[n],this}prependOnceListener(e,n){const i=l=>{this.removeListener(e,i),n(l)};return this.prependListener(e,i)}}class Qn{constructor(e){this.pid=e}async write(e){return C("plugin:shell|stdin_write",{pid:this.pid,buffer:typeof e=="string"?e:Array.from(e)})}async kill(){return C("plugin:shell|kill",{cmd:"killChild",pid:this.pid})}}class nt extends at{constructor(e,n=[],i){super(),this.stdout=new at,this.stderr=new at,this.program=e,this.args=typeof n=="string"?[n]:n,this.options=i??{}}static create(e,n=[],i){return new nt(e,n,i)}static sidecar(e,n=[],i){const l=new nt(e,n,i);return l.options.sidecar=!0,l}async spawn(){return Gn(e=>{switch(e.event){case"Error":this.emit("error",e.payload);break;case"Terminated":this.emit("close",e.payload);break;case"Stdout":this.stdout.emit("data",e.payload);break;case"Stderr":this.stderr.emit("data",e.payload);break}},this.program,this.args,this.options).then(e=>new Qn(e))}async execute(){return new Promise((e,n)=>{this.on("error",n);const i=[],l=[];this.stdout.on("data",s=>{i.push(s)}),this.stderr.on("data",s=>{l.push(s)}),this.on("close",s=>{e({code:s.code,signal:s.signal,stdout:this.collectOutput(i),stderr:this.collectOutput(l)})}),this.spawn().catch(n)})}collectOutput(e){return this.options.encoding==="raw"?e.reduce((n,i)=>new Uint8Array([...n,...i,10]),new Uint8Array):e.join(` +`)}}async function Xn(t,e){return C("plugin:shell|open",{path:t,with:e})}class Yn{constructor(e,n){this.type="Logical",this.width=e,this.height=n}}class pt{constructor(e,n){this.type="Physical",this.width=e,this.height=n}toLogical(e){return new Yn(this.width/e,this.height/e)}}class Jn{constructor(e,n){this.type="Logical",this.x=e,this.y=n}}class ht{constructor(e,n){this.type="Physical",this.x=e,this.y=n}toLogical(e){return new Jn(this.x/e,this.y/e)}}var Se;(function(t){t.WINDOW_RESIZED="tauri://resize",t.WINDOW_MOVED="tauri://move",t.WINDOW_CLOSE_REQUESTED="tauri://close-requested",t.WINDOW_DESTROYED="tauri://destroyed",t.WINDOW_FOCUS="tauri://focus",t.WINDOW_BLUR="tauri://blur",t.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",t.WINDOW_THEME_CHANGED="tauri://theme-changed",t.WEBVIEW_CREATED="tauri://webview-created",t.WEBVIEW_FILE_DROP="tauri://file-drop",t.WEBVIEW_FILE_DROP_HOVER="tauri://file-drop-hover",t.WEBVIEW_FILE_DROP_CANCELLED="tauri://file-drop-cancelled"})(Se||(Se={}));async function wn(t,e){await C("plugin:event|unlisten",{event:t,eventId:e})}async function vn(t,e,n){const i=typeof(n==null?void 0:n.target)=="string"?{kind:"AnyLabel",label:n.target}:(n==null?void 0:n.target)??{kind:"Any"};return C("plugin:event|listen",{event:t,target:i,handler:gn(e)}).then(l=>async()=>wn(t,l))}async function Zn(t,e,n){return vn(t,i=>{e(i),wn(t,i.id).catch(()=>{})},n)}async function Bn(t,e){await C("plugin:event|emit",{event:t,payload:e})}async function Kn(t,e,n){await C("plugin:event|emit_to",{target:typeof t=="string"?{kind:"AnyLabel",label:t}:t,event:e,payload:n})}var bt;(function(t){t[t.Critical=1]="Critical",t[t.Informational=2]="Informational"})(bt||(bt={}));class $n{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var Ct;(function(t){t.None="none",t.Normal="normal",t.Indeterminate="indeterminate",t.Paused="paused",t.Error="error"})(Ct||(Ct={}));function mt(){return new yn(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}function ct(){return window.__TAURI_INTERNALS__.metadata.windows.map(t=>new yn(t.label,{skip:!0}))}const ut=["tauri://created","tauri://error"];class yn{constructor(e,n={}){var i;this.label=e,this.listeners=Object.create(null),n!=null&&n.skip||C("plugin:window|create",{options:{...n,parent:typeof n.parent=="string"?n.parent:(i=n.parent)==null?void 0:i.label,label:e}}).then(async()=>this.emit("tauri://created")).catch(async l=>this.emit("tauri://error",l))}static getByLabel(e){return ct().find(n=>n.label===e)??null}static getCurrent(){return mt()}static getAll(){return ct()}static async getFocusedWindow(){for(const e of ct())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{const i=this.listeners[e];i.splice(i.indexOf(n),1)}):vn(e,n,{target:{kind:"Window",label:this.label}})}async once(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{const i=this.listeners[e];i.splice(i.indexOf(n),1)}):Zn(e,n,{target:{kind:"Window",label:this.label}})}async emit(e,n){if(ut.includes(e)){for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:n});return Promise.resolve()}return Bn(e,n)}async emitTo(e,n,i){if(ut.includes(n)){for(const l of this.listeners[n]||[])l({event:n,id:-1,payload:i});return Promise.resolve()}return Kn(e,n,i)}_handleTauriEvent(e,n){return ut.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return C("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return C("plugin:window|inner_position",{label:this.label}).then(({x:e,y:n})=>new ht(e,n))}async outerPosition(){return C("plugin:window|outer_position",{label:this.label}).then(({x:e,y:n})=>new ht(e,n))}async innerSize(){return C("plugin:window|inner_size",{label:this.label}).then(({width:e,height:n})=>new pt(e,n))}async outerSize(){return C("plugin:window|outer_size",{label:this.label}).then(({width:e,height:n})=>new pt(e,n))}async isFullscreen(){return C("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return C("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return C("plugin:window|is_maximized",{label:this.label})}async isFocused(){return C("plugin:window|is_focused",{label:this.label})}async isDecorated(){return C("plugin:window|is_decorated",{label:this.label})}async isResizable(){return C("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return C("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return C("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return C("plugin:window|is_closable",{label:this.label})}async isVisible(){return C("plugin:window|is_visible",{label:this.label})}async title(){return C("plugin:window|title",{label:this.label})}async theme(){return C("plugin:window|theme",{label:this.label})}async center(){return C("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===bt.Critical?n={type:"Critical"}:n={type:"Informational"}),C("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return C("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return C("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return C("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return C("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return C("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return C("plugin:window|maximize",{label:this.label})}async unmaximize(){return C("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return C("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return C("plugin:window|minimize",{label:this.label})}async unminimize(){return C("plugin:window|unminimize",{label:this.label})}async show(){return C("plugin:window|show",{label:this.label})}async hide(){return C("plugin:window|hide",{label:this.label})}async close(){return C("plugin:window|close",{label:this.label})}async destroy(){return C("plugin:window|destroy",{label:this.label})}async setDecorations(e){return C("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return C("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return C("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return C("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return C("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return C("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return C("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return C("plugin:window|set_size",{label:this.label,value:{type:e.type,data:{width:e.width,height:e.height}}})}async setMinSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return C("plugin:window|set_min_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setMaxSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return C("plugin:window|set_max_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return C("plugin:window|set_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setFullscreen(e){return C("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return C("plugin:window|set_focus",{label:this.label})}async setIcon(e){return C("plugin:window|set_icon",{label:this.label,value:typeof e=="string"?e:Array.from(e)})}async setSkipTaskbar(e){return C("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return C("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return C("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return C("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return C("plugin:window|set_cursor_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setIgnoreCursorEvents(e){return C("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return C("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return C("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setProgressBar(e){return C("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return C("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async onResized(e){return this.listen(Se.WINDOW_RESIZED,n=>{n.payload=ti(n.payload),e(n)})}async onMoved(e){return this.listen(Se.WINDOW_MOVED,n=>{n.payload=ei(n.payload),e(n)})}async onCloseRequested(e){return this.listen(Se.WINDOW_CLOSE_REQUESTED,n=>{const i=new $n(n);Promise.resolve(e(i)).then(()=>{if(!i.isPreventDefault())return this.destroy()})})}async onFocusChanged(e){const n=await this.listen(Se.WINDOW_FOCUS,l=>{e({...l,payload:!0})}),i=await this.listen(Se.WINDOW_BLUR,l=>{e({...l,payload:!1})});return()=>{n(),i()}}async onScaleChanged(e){return this.listen(Se.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(Se.WINDOW_THEME_CHANGED,e)}}var Lt;(function(t){t.AppearanceBased="appearanceBased",t.Light="light",t.Dark="dark",t.MediumLight="mediumLight",t.UltraDark="ultraDark",t.Titlebar="titlebar",t.Selection="selection",t.Menu="menu",t.Popover="popover",t.Sidebar="sidebar",t.HeaderView="headerView",t.Sheet="sheet",t.WindowBackground="windowBackground",t.HudWindow="hudWindow",t.FullScreenUI="fullScreenUI",t.Tooltip="tooltip",t.ContentBackground="contentBackground",t.UnderWindowBackground="underWindowBackground",t.UnderPageBackground="underPageBackground",t.Mica="mica",t.Blur="blur",t.Acrylic="acrylic",t.Tabbed="tabbed",t.TabbedDark="tabbedDark",t.TabbedLight="tabbedLight"})(Lt||(Lt={}));var At;(function(t){t.FollowsWindowActiveState="followsWindowActiveState",t.Active="active",t.Inactive="inactive"})(At||(At={}));function ei(t){return new ht(t.x,t.y)}function ti(t){return new pt(t.width,t.height)}async function kn(){return C("plugin:os|platform")}async function ni(){return C("plugin:app|version")}async function ii(){return C("plugin:app|name")}async function li(){return C("plugin:app|tauri_version")}async function si(t=0){return C("plugin:process|exit",{code:t})}async function Cn(){return C("plugin:process|restart")}function oi(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I,W;return{c(){e=d("p"),e.innerHTML=`This is a demo of Tauri's API capabilities using the @tauri-apps/api package. It's used as the main validation app, serving as the test bed of our + development process. In the future, this app will be used on Tauri's integration + tests.`,n=y(),i=d("br"),l=y(),s=d("br"),o=y(),r=d("pre"),u=Z("App name: "),f=d("code"),h=Z(t[2]),w=Z(` +App version: `),p=d("code"),b=Z(t[0]),k=Z(` +Tauri version: `),_=d("code"),A=Z(t[1]),L=Z(` +`),v=y(),E=d("br"),O=y(),U=d("div"),S=d("button"),S.textContent="Close application",j=y(),T=d("button"),T.textContent="Relaunch application",c(S,"class","btn"),c(T,"class","btn"),c(U,"class","flex flex-wrap gap-1 shadow-")},m(R,D){g(R,e,D),g(R,n,D),g(R,i,D),g(R,l,D),g(R,s,D),g(R,o,D),g(R,r,D),a(r,u),a(r,f),a(f,h),a(r,w),a(r,p),a(p,b),a(r,k),a(r,_),a(_,A),a(r,L),g(R,v,D),g(R,E,D),g(R,O,D),g(R,U,D),a(U,S),a(U,j),a(U,T),I||(W=[M(S,"click",t[3]),M(T,"click",t[4])],I=!0)},p(R,[D]){D&4&&he(h,R[2]),D&1&&he(b,R[0]),D&2&&he(A,R[1])},i:x,o:x,d(R){R&&(m(e),m(n),m(i),m(l),m(s),m(o),m(r),m(v),m(E),m(O),m(U)),I=!1,$(W)}}}function ri(t,e,n){let i="1.0.0",l="1.0.0",s="Unknown";ii().then(u=>{n(2,s=u)}),ni().then(u=>{n(0,i=u)}),li().then(u=>{n(1,l=u)});async function o(){await si()}async function r(){await Cn()}return[i,l,s,o,r]}class ai extends de{constructor(e){super(),ue(this,e,ri,oi,se,{})}}async function ci(){return await C("plugin:cli|cli_matches")}function ui(t){let e,n,i,l,s,o,r,u,f,h,w,p,b;return{c(){e=d("p"),e.innerHTML=`This binary can be run from the terminal and takes the following arguments: +
  --config <PATH>
+  --theme <light|dark|system>
+  --verbose
+ Additionally, it has a update --background subcommand.`,n=y(),i=d("br"),l=y(),s=d("div"),s.textContent="Note that the arguments are only parsed, not implemented.",o=y(),r=d("br"),u=y(),f=d("br"),h=y(),w=d("button"),w.textContent="Get matches",c(s,"class","note"),c(w,"class","btn"),c(w,"id","cli-matches")},m(k,_){g(k,e,_),g(k,n,_),g(k,i,_),g(k,l,_),g(k,s,_),g(k,o,_),g(k,r,_),g(k,u,_),g(k,f,_),g(k,h,_),g(k,w,_),p||(b=M(w,"click",t[0]),p=!0)},p:x,i:x,o:x,d(k){k&&(m(e),m(n),m(i),m(l),m(s),m(o),m(r),m(u),m(f),m(h),m(w)),p=!1,b()}}}function di(t,e,n){let{onMessage:i}=e;function l(){ci().then(i).catch(i)}return t.$$set=s=>{"onMessage"in s&&n(1,i=s.onMessage)},[l,i]}class fi extends de{constructor(e){super(),ue(this,e,di,ui,se,{onMessage:1})}}function pi(t){let e,n,i,l,s,o,r,u;return{c(){e=d("div"),n=d("button"),n.textContent="Call Log API",i=y(),l=d("button"),l.textContent="Call Request (async) API",s=y(),o=d("button"),o.textContent="Send event to Rust",c(n,"class","btn"),c(n,"id","log"),c(l,"class","btn"),c(l,"id","request"),c(o,"class","btn"),c(o,"id","event")},m(f,h){g(f,e,h),a(e,n),a(e,i),a(e,l),a(e,s),a(e,o),r||(u=[M(n,"click",t[0]),M(l,"click",t[1]),M(o,"click",t[2])],r=!0)},p:x,i:x,o:x,d(f){f&&m(e),r=!1,$(u)}}}function hi(t,e,n){const i=mt();let{onMessage:l}=e,s;Pe(async()=>{s=await i.listen("rust-event",l)}),dn(()=>{s&&s()});function o(){C("log_operation",{event:"tauri-click",payload:"this payload is optional because we used Option in Rust"})}function r(){C("perform_request",{endpoint:"dummy endpoint arg",body:{id:5,name:"test"}}).then(l).catch(l)}function u(){i.emit("js-event","this is the payload string")}return t.$$set=f=>{"onMessage"in f&&n(3,l=f.onMessage)},[o,r,u,l]}class bi extends de{constructor(e){super(),ue(this,e,hi,pi,se,{onMessage:3})}}async function mi(t={}){return typeof t=="object"&&Object.freeze(t),C("plugin:dialog|open",{options:t})}async function gi(t={}){return typeof t=="object"&&Object.freeze(t),C("plugin:dialog|save",{options:t})}async function _i(t,e){var i,l;const n=typeof e=="string"?{title:e}:e;return C("plugin:dialog|message",{message:t.toString(),title:(i=n==null?void 0:n.title)==null?void 0:i.toString(),type_:n==null?void 0:n.type,okButtonLabel:(l=n==null?void 0:n.okLabel)==null?void 0:l.toString()})}async function wi(t,e){var i,l,s;const n=typeof e=="string"?{title:e}:e;return C("plugin:dialog|ask",{message:t.toString(),title:(i=n==null?void 0:n.title)==null?void 0:i.toString(),type_:n==null?void 0:n.type,okButtonLabel:((l=n==null?void 0:n.okLabel)==null?void 0:l.toString())??"Yes",cancelButtonLabel:((s=n==null?void 0:n.cancelLabel)==null?void 0:s.toString())??"No"})}async function St(t,e){var i,l,s;const n=typeof e=="string"?{title:e}:e;return C("plugin:dialog|confirm",{message:t.toString(),title:(i=n==null?void 0:n.title)==null?void 0:i.toString(),type_:n==null?void 0:n.type,okButtonLabel:((l=n==null?void 0:n.okLabel)==null?void 0:l.toString())??"Ok",cancelButtonLabel:((s=n==null?void 0:n.cancelLabel)==null?void 0:s.toString())??"Cancel"})}var it;(function(t){t[t.Audio=1]="Audio",t[t.Cache=2]="Cache",t[t.Config=3]="Config",t[t.Data=4]="Data",t[t.LocalData=5]="LocalData",t[t.Document=6]="Document",t[t.Download=7]="Download",t[t.Picture=8]="Picture",t[t.Public=9]="Public",t[t.Video=10]="Video",t[t.Resource=11]="Resource",t[t.Temp=12]="Temp",t[t.AppConfig=13]="AppConfig",t[t.AppData=14]="AppData",t[t.AppLocalData=15]="AppLocalData",t[t.AppCache=16]="AppCache",t[t.AppLog=17]="AppLog",t[t.Desktop=18]="Desktop",t[t.Executable=19]="Executable",t[t.Font=20]="Font",t[t.Home=21]="Home",t[t.Runtime=22]="Runtime",t[t.Template=23]="Template"})(it||(it={}));var Et;(function(t){t[t.Start=0]="Start",t[t.Current=1]="Current",t[t.End=2]="End"})(Et||(Et={}));function Ln(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:t.mtime!=null?new Date(t.mtime):null,atime:t.atime!=null?new Date(t.atime):null,birthtime:t.birthtime!=null?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}class vi extends _n{constructor(e){super(e)}async read(e){if(e.byteLength===0)return 0;const[n,i]=await C("plugin:fs|read",{rid:this.rid,len:e.byteLength});return e.set(n),i===0?null:i}async seek(e,n){return C("plugin:fs|seek",{rid:this.rid,offset:e,whence:n})}async stat(){const e=await C("plugin:fs|fstat",{rid:this.rid});return Ln(e)}async truncate(e){return C("plugin:fs|ftruncate",{rid:this.rid,len:e})}async write(e){return C("plugin:fs|write",{rid:this.rid,data:Array.from(e)})}}async function yi(t,e){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");const n=await C("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new vi(n)}async function ki(t,e){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");return C("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})}async function Ci(t,e){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");return C("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})}async function An(t,e){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");const n=await C("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return Uint8Array.from(n)}async function Li(t,e){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");return C("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})}async function Ai(t,e,n){if(t instanceof URL&&t.protocol!=="file:"||e instanceof URL&&e.protocol!=="file:")throw new TypeError("Must be a file URL.");return C("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})}async function Si(t,e){const n=await C("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e});return Ln(n)}async function Ei(t,e,n){if(t instanceof URL&&t.protocol!=="file:")throw new TypeError("Must be a file URL.");return C("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})}async function Sn(t){await C("plugin:fs|unwatch",{rid:t})}async function Mi(t,e,n){const i={recursive:!1,delayMs:2e3,...n},l=Array.isArray(t)?t:[t];for(const r of l)if(r instanceof URL&&r.protocol!=="file:")throw new TypeError("Must be a file URL.");const s=new Ze;s.onmessage=e;const o=await C("plugin:fs|watch",{paths:l.map(r=>r instanceof URL?r.toString():r),options:i,onEvent:s});return()=>{Sn(o)}}async function Ti(t,e,n){const i={recursive:!1,...n,delayMs:null},l=Array.isArray(t)?t:[t];for(const r of l)if(r instanceof URL&&r.protocol!=="file:")throw new TypeError("Must be a file URL.");const s=new Ze;s.onmessage=e;const o=await C("plugin:fs|watch",{paths:l.map(r=>r instanceof URL?r.toString():r),options:i,onEvent:s});return()=>{Sn(o)}}function Ri(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I,W,R,D,Y,G;return{c(){e=d("div"),n=d("input"),i=y(),l=d("input"),s=y(),o=d("br"),r=y(),u=d("div"),f=d("input"),h=y(),w=d("label"),w.textContent="Multiple",p=y(),b=d("div"),k=d("input"),_=y(),A=d("label"),A.textContent="Directory",L=y(),v=d("br"),E=y(),O=d("button"),O.textContent="Open dialog",U=y(),S=d("button"),S.textContent="Open save dialog",j=y(),T=d("button"),T.textContent="Prompt",I=y(),W=d("button"),W.textContent="Prompt (custom)",R=y(),D=d("button"),D.textContent="Message",c(n,"class","input"),c(n,"id","dialog-default-path"),c(n,"placeholder","Default path"),c(l,"class","input"),c(l,"id","dialog-filter"),c(l,"placeholder","Extensions filter, comma-separated"),c(e,"class","flex gap-2 children:grow"),c(f,"type","checkbox"),c(f,"id","dialog-multiple"),c(w,"for","dialog-multiple"),c(k,"type","checkbox"),c(k,"id","dialog-directory"),c(A,"for","dialog-directory"),c(O,"class","btn"),c(O,"id","open-dialog"),c(S,"class","btn"),c(S,"id","save-dialog"),c(T,"class","btn"),c(T,"id","prompt-dialog"),c(W,"class","btn"),c(W,"id","custom-prompt-dialog"),c(D,"class","btn"),c(D,"id","message-dialog")},m(P,z){g(P,e,z),a(e,n),q(n,t[0]),a(e,i),a(e,l),q(l,t[1]),g(P,s,z),g(P,o,z),g(P,r,z),g(P,u,z),a(u,f),f.checked=t[2],a(u,h),a(u,w),g(P,p,z),g(P,b,z),a(b,k),k.checked=t[3],a(b,_),a(b,A),g(P,L,z),g(P,v,z),g(P,E,z),g(P,O,z),g(P,U,z),g(P,S,z),g(P,j,z),g(P,T,z),g(P,I,z),g(P,W,z),g(P,R,z),g(P,D,z),Y||(G=[M(n,"input",t[11]),M(l,"input",t[12]),M(f,"change",t[13]),M(k,"change",t[14]),M(O,"click",t[7]),M(S,"click",t[8]),M(T,"click",t[4]),M(W,"click",t[5]),M(D,"click",t[6])],Y=!0)},p(P,[z]){z&1&&n.value!==P[0]&&q(n,P[0]),z&2&&l.value!==P[1]&&q(l,P[1]),z&4&&(f.checked=P[2]),z&8&&(k.checked=P[3])},i:x,o:x,d(P){P&&(m(e),m(s),m(o),m(r),m(u),m(p),m(b),m(L),m(v),m(E),m(O),m(U),m(S),m(j),m(T),m(I),m(W),m(R),m(D)),Y=!1,$(G)}}}function Pi(t,e){var n=new Blob([t],{type:"application/octet-binary"}),i=new FileReader;i.onload=function(l){var s=l.target.result;e(s.substr(s.indexOf(",")+1))},i.readAsDataURL(n)}function Oi(t,e,n){let{onMessage:i}=e,{insecureRenderHtml:l}=e,s=null,o=null,r=!1,u=!1;async function f(){St("Do you want to do something?").then(v=>i(v?"Yes":"No")).catch(i)}async function h(){St("Is Tauri awesome?",{okLabel:"Absolutely",cancelLabel:"Totally"}).then(v=>i(v?"Tauri is absolutely awesome":"Tauri is totally awesome")).catch(i)}async function w(){await _i("Tauri is awesome!")}function p(){mi({title:"My wonderful open dialog",defaultPath:s,filters:o?[{name:"Tauri Example",extensions:o.split(",").map(v=>v.trim())}]:[],multiple:r,directory:u}).then(function(v){if(Array.isArray(v))i(v);else{var E=typeof v=="string"?v:v.path,O=E.match(/\S+\.\S+$/g);An(E).then(function(U){O&&(E.includes(".png")||E.includes(".jpg"))?Pi(new Uint8Array(U),function(S){var j="data:image/png;base64,"+S;l('')}):i(v)}).catch(i(v))}}).catch(i)}function b(){gi({title:"My wonderful save dialog",defaultPath:s,filters:o?[{name:"Tauri Example",extensions:o.split(",").map(v=>v.trim())}]:[]}).then(i).catch(i)}function k(){s=this.value,n(0,s)}function _(){o=this.value,n(1,o)}function A(){r=this.checked,n(2,r)}function L(){u=this.checked,n(3,u)}return t.$$set=v=>{"onMessage"in v&&n(9,i=v.onMessage),"insecureRenderHtml"in v&&n(10,l=v.insecureRenderHtml)},[s,o,r,u,f,h,w,p,b,i,l,k,_,A,L]}class Ii extends de{constructor(e){super(),ue(this,e,Oi,Ri,se,{onMessage:9,insecureRenderHtml:10})}}function Mt(t,e,n){const i=t.slice();return i[28]=e[n],i}function Tt(t){let e,n=t[28][0]+"",i;return{c(){e=d("option"),i=Z(n),e.__value=t[28][1],q(e,e.__value)},m(l,s){g(l,e,s),a(e,i)},p:x,d(l){l&&m(e)}}}function Rt(t){let e,n,i,l,s,o;return{c(){e=d("div"),n=d("button"),n.textContent="Truncate",i=y(),l=d("button"),l.textContent="Stat",c(n,"class","btn"),c(l,"class","btn")},m(r,u){g(r,e,u),a(e,n),a(e,i),a(e,l),s||(o=[M(n,"click",t[12]),M(l,"click",t[13])],s=!0)},p:x,d(r){r&&m(e),s=!1,$(o)}}}function Ui(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I,W,R,D,Y,G,P,z,oe,ee,re,B,te,F,K,H,Q,fe,me,Ae,He,ae,Ee,ve,we,ne,ye,ie,ke,Me,Ce,le,N=ge(t[7]),J=[];for(let X=0;XisNaN(parseInt(P))).map(P=>[P,it[P]]);function _(){yi(s,{baseDir:Re(),read:!0,write:!0,create:!0}).then(P=>{n(2,r=P),i(`Opened ${s}`)}).catch(i)}function A(){ki(s,{baseDir:Re()}).then(()=>{i(`Created dir ${s}`)}).catch(i)}function L(){Li(s,{baseDir:Re()}).then(()=>{i(`Removed ${s}`)}).catch(i)}function v(){Ai(s,u,{oldPathBaseDir:Re(),newPathBaseDir:Re()}).then(()=>{i(`Renamed ${s} to ${u}`)}).catch(i)}function E(){r.truncate(0).then(()=>{i("Truncated file")}).catch(i)}function O(){r.stat().then(P=>{i(`File stat ${JSON.stringify(P)}`)}).catch(i)}function U(){const P={baseDir:Re()};Si(s,P).then(z=>{const oe=z.isFile;(oe?An(s,P):Ci(s,P)).then(function(re){if(oe)if(s.includes(".png")||s.includes(".jpg"))Di(new Uint8Array(re),function(B){const te="data:image/png;base64,"+B;l('')});else{const B=String.fromCharCode.apply(null,re);l(''),setTimeout(()=>{const te=document.getElementById("file-response");te.value=B,document.getElementById("file-save").addEventListener("click",function(){Ei(s,te.value,{dir:Re()}).catch(i)})})}else i(re)}).catch(i)}).catch(i)}function S(){n(1,o.src=xn(s),o)}function j(){if(T(),f){i(`Watching ${f} for changes`);let P={recursive:w,delayMs:parseInt(h)};P.delayMs===0?Ti(f,i,P).then(z=>{p=z,b=f}).catch(i):Mi(f,i,P).then(z=>{p=z,b=f}).catch(i)}}function T(){p&&(i(`Stopped watching ${b} for changes`),p()),p=void 0,b=void 0}function I(){s=this.value,n(0,s)}function W(){u=this.value,n(3,u)}function R(){f=this.value,n(4,f)}function D(){h=this.value,n(5,h)}function Y(){w=this.checked,n(6,w)}function G(P){Qe[P?"unshift":"push"](()=>{o=P,n(1,o)})}return t.$$set=P=>{"onMessage"in P&&n(18,i=P.onMessage),"insecureRenderHtml"in P&&n(19,l=P.insecureRenderHtml)},[s,o,r,u,f,h,w,k,_,A,L,v,E,O,U,S,j,T,i,l,I,W,R,D,Y,G]}class zi extends de{constructor(e){super(),ue(this,e,Ni,Ui,se,{onMessage:18,insecureRenderHtml:19})}}async function Pt(t,e){const n=e==null?void 0:e.maxRedirections,i=e==null?void 0:e.connectTimeout,l=e==null?void 0:e.proxy;e&&(delete e.maxRedirections,delete e.connectTimeout,delete e.proxy);const s=e==null?void 0:e.signal,o=new Request(t,e),r=await o.arrayBuffer(),u=r.byteLength?Array.from(new Uint8Array(r)):null,f=await C("plugin:http|fetch",{clientConfig:{method:o.method,url:o.url,headers:Array.from(o.headers.entries()),data:u,maxRedirections:n,connectTimeout:i,proxy:l}});s==null||s.addEventListener("abort",()=>{C("plugin:http|fetch_cancel",{rid:f})});const{status:h,statusText:w,url:p,headers:b,rid:k}=await C("plugin:http|fetch_send",{rid:f}),_=await C("plugin:http|fetch_read_body",{rid:k}),A=new Response(new Uint8Array(_),{headers:b,status:h,statusText:w});return Object.defineProperty(A,"url",{value:p}),A}function Ot(t,e,n){const i=t.slice();return i[10]=e[n],i[12]=n,i}function Wi(t){let e,n=t[6][0]+"",i,l,s,o,r,u=t[6][1]+"",f,h,w,p,b,k=ge(t[5]),_=[];for(let v=0;vLe(_[v],1,1,()=>{_[v]=null});let L=!t[3]&&Nt();return{c(){e=d("span"),i=Z(n),l=y(),s=d("ul");for(let v=0;v<_.length;v+=1)_[v].c();o=y(),r=d("span"),f=Z(u),L&&L.c(),h=Ie(),c(e,"class","_jsonBkt svelte-6z96o6"),c(e,"role","button"),c(e,"tabindex","0"),be(e,"isArray",t[4]),c(s,"class","_jsonList svelte-6z96o6"),c(r,"class","_jsonBkt svelte-6z96o6"),c(r,"role","button"),c(r,"tabindex","0"),be(r,"isArray",t[4])},m(v,E){g(v,e,E),a(e,i),g(v,l,E),g(v,s,E);for(let O=0;O<_.length;O+=1)_[O]&&_[O].m(s,null);g(v,o,E),g(v,r,E),a(r,f),L&&L.m(v,E),g(v,h,E),w=!0,p||(b=[M(e,"click",t[8]),M(e,"keydown",t[9]),M(r,"click",t[8]),M(r,"keydown",t[9])],p=!0)},p(v,E){if((!w||E&64)&&n!==(n=v[6][0]+"")&&he(i,n),(!w||E&16)&&be(e,"isArray",v[4]),E&55){k=ge(v[5]);let O;for(O=0;O{h[k]=null}),ot(),s=h[l],s?s.p(p,b):(s=h[l]=f[l](p),s.c()),_e(s,1),s.m(e,o))},i(p){r||(_e(s),r=!0)},o(p){Le(s),r=!1},d(p){p&&m(e),u&&u.d(),h[l].d()}}}function Nt(t){let e;return{c(){e=d("span"),e.textContent=",",c(e,"class","_jsonSep svelte-6z96o6")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function zt(t){let e;return{c(){e=d("span"),e.textContent=",",c(e,"class","_jsonSep svelte-6z96o6")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Wt(t){let e;return{c(){e=d("span"),e.textContent=",",c(e,"class","_jsonSep svelte-6z96o6")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Fi(t){let e,n,i,l;const s=[Hi,ji,Wi],o=[];function r(u,f){return u[5].length?u[7]?1:2:0}return e=r(t),n=o[e]=s[e](t),{c(){n.c(),i=Ie()},m(u,f){o[e].m(u,f),g(u,i,f),l=!0},p(u,[f]){let h=e;e=r(u),e===h?o[e].p(u,f):(st(),Le(o[h],1,1,()=>{o[h]=null}),ot(),n=o[e],n?n.p(u,f):(n=o[e]=s[e](u),n.c()),_e(n,1),n.m(i.parentNode,i))},i(u){l||(_e(n),l=!0)},o(u){Le(n),l=!1},d(u){u&&m(i),o[e].d(u)}}}function Je(t){return t===null?"null":typeof t}function jt(t){const e=Je(t);return e==="string"?`"${t}"`:e==="function"?"f () {...}":e==="symbol"?t.toString():t}function xi(t,e,n){let{json:i}=e,{depth:l=1/0}=e,{_cur:s=0}=e,{_last:o=!0}=e,r,u=!1,f=["",""],h=!1;function w(){n(7,h=!h)}function p(b){b instanceof KeyboardEvent&&["Enter"," "].includes(b.key)&&w()}return t.$$set=b=>{"json"in b&&n(0,i=b.json),"depth"in b&&n(1,l=b.depth),"_cur"in b&&n(2,s=b._cur),"_last"in b&&n(3,o=b._last)},t.$$.update=()=>{t.$$.dirty&17&&(n(5,r=Je(i)==="object"?Object.keys(i):[]),n(4,u=Array.isArray(i)),n(6,f=u?["[","]"]:["{","}"])),t.$$.dirty&6&&n(7,h=lt[8].call(n)),c(w,"class","input h-auto w-100%"),c(w,"id","request-body"),c(w,"placeholder","Request body"),c(w,"rows","5"),c(_,"class","btn"),c(_,"id","make-request"),c(S,"class","input"),c(T,"class","input"),c(U,"class","flex gap-2 children:grow"),c(G,"class","btn"),c(G,"type","button")},m(H,Q){g(H,e,Q),a(e,n),a(n,i),a(n,l),a(n,s),a(n,o),a(n,r),et(n,t[0],!0),a(e,u),a(e,f),a(e,h),a(e,w),q(w,t[1]),a(e,p),a(e,b),a(e,k),a(e,_),g(H,A,Q),g(H,L,Q),g(H,v,Q),g(H,E,Q),g(H,O,Q),g(H,U,Q),a(U,S),q(S,t[2]),a(U,j),a(U,T),q(T,t[3]),g(H,I,Q),g(H,W,Q),g(H,R,Q),g(H,D,Q),g(H,Y,Q),g(H,G,Q),g(H,P,Q),g(H,z,Q),g(H,oe,Q),g(H,ee,Q),g(H,re,Q),Xe(B,H,Q),te=!0,F||(K=[M(n,"change",t[8]),M(w,"input",t[9]),M(e,"submit",Nn(t[5])),M(S,"input",t[10]),M(T,"input",t[11]),M(G,"click",t[6])],F=!0)},p(H,[Q]){Q&1&&et(n,H[0]),Q&2&&q(w,H[1]),Q&4&&S.value!==H[2]&&q(S,H[2]),Q&8&&T.value!==H[3]&&q(T,H[3]);const fe={};Q&16&&(fe.json=H[4]),B.$set(fe)},i(H){te||(_e(B.$$.fragment,H),te=!0)},o(H){Le(B.$$.fragment,H),te=!1},d(H){H&&(m(e),m(A),m(L),m(v),m(E),m(O),m(U),m(I),m(W),m(R),m(D),m(Y),m(G),m(P),m(z),m(oe),m(ee),m(re)),Ye(B,H),F=!1,$(K)}}}function Qi(t,e,n){let i="GET",l="",{onMessage:s}=e;async function o(){let _=i||"GET";const A={method:_||"GET",headers:{}};let L;_!=="GET"&&(A.body=l,l.startsWith("{")&&l.endsWith("}")||l.startsWith("[")&&l.endsWith("]")?(A.headers["Content-Type"]="application/json",L="json"):l!==""&&(L="text"));const v=await Pt("http://localhost:3003",A),E=L==="json"?await v.json():await v.text();s({url:v.url,status:v.status,ok:v.ok,headers:Object.fromEntries(v.headers.entries()),body:E})}let r="baz",u="qux",f=null;async function h(){const _=new FormData;_.append("foo",r),_.append("bar",u);const A=await Pt("http://localhost:3003",{method:"POST",body:_});n(4,f={url:A.url,status:A.status,ok:A.ok,headers:Object.fromEntries(A.headers.entries()),body:await A.text()})}function w(){i=cn(this),n(0,i)}function p(){l=this.value,n(1,l)}function b(){r=this.value,n(2,r)}function k(){u=this.value,n(3,u)}return t.$$set=_=>{"onMessage"in _&&n(7,s=_.onMessage)},[i,l,r,u,f,o,h,s,w,p,b,k]}class Xi extends de{constructor(e){super(),ue(this,e,Qi,Gi,se,{onMessage:7})}}function Yi(t){let e,n,i;return{c(){e=d("button"),e.textContent="Send test notification",c(e,"class","btn"),c(e,"id","notification")},m(l,s){g(l,e,s),n||(i=M(e,"click",t[0]),n=!0)},p:x,i:x,o:x,d(l){l&&m(e),n=!1,i()}}}function Ht(){new Notification("Notification title",{body:"This is the notification body"})}function Ji(t,e,n){let{onMessage:i}=e;function l(){Notification.permission==="default"?Notification.requestPermission().then(function(s){s==="granted"?Ht():i("Permission is "+s)}).catch(i):Notification.permission==="granted"?Ht():i("Permission is denied")}return t.$$set=s=>{"onMessage"in s&&n(1,i=s.onMessage)},[l,i]}class Zi extends de{constructor(e){super(),ue(this,e,Ji,Yi,se,{onMessage:1})}}async function Bi(t,e){const n=new Ze;return n.onmessage=e,await C("plugin:global-shortcut|register",{shortcut:t,handler:n})}async function Ki(t){return await C("plugin:global-shortcut|unregister",{shortcut:t})}async function $i(){return await C("plugin:global-shortcut|unregister_all")}function qt(t,e,n){const i=t.slice();return i[9]=e[n],i}function Vt(t){let e,n=t[9]+"",i,l,s,o,r;function u(){return t[8](t[9])}return{c(){e=d("div"),i=Z(n),l=y(),s=d("button"),s.textContent="Unregister",c(s,"class","btn"),c(s,"type","button"),c(e,"class","flex justify-between")},m(f,h){g(f,e,h),a(e,i),a(e,l),a(e,s),o||(r=M(s,"click",u),o=!0)},p(f,h){t=f,h&2&&n!==(n=t[9]+"")&&he(i,n)},d(f){f&&m(e),o=!1,r()}}}function Ft(t){let e,n,i,l,s;return{c(){e=d("br"),n=y(),i=d("button"),i.textContent="Unregister all",c(i,"class","btn"),c(i,"type","button")},m(o,r){g(o,e,r),g(o,n,r),g(o,i,r),l||(s=M(i,"click",t[5]),l=!0)},p:x,d(o){o&&(m(e),m(n),m(i)),l=!1,s()}}}function el(t){let e,n,i,l,s,o,r,u,f,h,w,p=ge(t[1]),b=[];for(let _=0;_1&&Ft(t);return{c(){e=d("div"),n=d("input"),i=y(),l=d("button"),l.textContent="Register",s=y(),o=d("br"),r=y(),u=d("div");for(let _=0;_1?k?k.p(_,A):(k=Ft(_),k.c(),k.m(u,null)):k&&(k.d(1),k=null)},i:x,o:x,d(_){_&&(m(e),m(s),m(o),m(r),m(u)),We(b,_),k&&k.d(),h=!1,$(w)}}}function tl(t,e,n){let i,{onMessage:l}=e;const s=bn([]);an(t,s,p=>n(1,i=p));let o="CmdOrControl+X";function r(){const p=o;Bi(p,()=>{l(`Shortcut ${p} triggered`)}).then(()=>{s.update(b=>[...b,p]),l(`Shortcut ${p} registered successfully`)}).catch(l)}function u(p){const b=p;Ki(b).then(()=>{s.update(k=>k.filter(_=>_!==b)),l(`Shortcut ${b} unregistered`)}).catch(l)}function f(){$i().then(()=>{s.update(()=>[]),l("Unregistered all shortcuts")}).catch(l)}function h(){o=this.value,n(0,o)}const w=p=>u(p);return t.$$set=p=>{"onMessage"in p&&n(6,l=p.onMessage)},[o,i,s,r,u,f,l,h,w]}class nl extends de{constructor(e){super(),ue(this,e,tl,el,se,{onMessage:6})}}function xt(t){let e,n,i,l,s,o,r;return{c(){e=d("br"),n=y(),i=d("input"),l=y(),s=d("button"),s.textContent="Write",c(i,"class","input"),c(i,"placeholder","write to stdin"),c(s,"class","btn")},m(u,f){g(u,e,f),g(u,n,f),g(u,i,f),q(i,t[4]),g(u,l,f),g(u,s,f),o||(r=[M(i,"input",t[14]),M(s,"click",t[8])],o=!0)},p(u,f){f&16&&i.value!==u[4]&&q(i,u[4])},d(u){u&&(m(e),m(n),m(i),m(l),m(s)),o=!1,$(r)}}}function il(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I=t[5]&&xt(t);return{c(){e=d("div"),n=d("div"),i=Z(`Script: + `),l=d("input"),s=y(),o=d("div"),r=Z(`Encoding: + `),u=d("input"),f=y(),h=d("div"),w=Z(`Working directory: + `),p=d("input"),b=y(),k=d("div"),_=Z(`Arguments: + `),A=d("input"),L=y(),v=d("div"),E=d("button"),E.textContent="Run",O=y(),U=d("button"),U.textContent="Kill",S=y(),I&&I.c(),c(l,"class","grow input"),c(n,"class","flex items-center gap-1"),c(u,"class","grow input"),c(o,"class","flex items-center gap-1"),c(p,"class","grow input"),c(p,"placeholder","Working directory"),c(h,"class","flex items-center gap-1"),c(A,"class","grow input"),c(A,"placeholder","Environment variables"),c(k,"class","flex items-center gap-1"),c(E,"class","btn"),c(U,"class","btn"),c(v,"class","flex children:grow gap-1"),c(e,"class","flex flex-col childre:grow gap-1")},m(W,R){g(W,e,R),a(e,n),a(n,i),a(n,l),q(l,t[0]),a(e,s),a(e,o),a(o,r),a(o,u),q(u,t[3]),a(e,f),a(e,h),a(h,w),a(h,p),q(p,t[1]),a(e,b),a(e,k),a(k,_),a(k,A),q(A,t[2]),a(e,L),a(e,v),a(v,E),a(v,O),a(v,U),a(e,S),I&&I.m(e,null),j||(T=[M(l,"input",t[10]),M(u,"input",t[11]),M(p,"input",t[12]),M(A,"input",t[13]),M(E,"click",t[6]),M(U,"click",t[7])],j=!0)},p(W,[R]){R&1&&l.value!==W[0]&&q(l,W[0]),R&8&&u.value!==W[3]&&q(u,W[3]),R&2&&p.value!==W[1]&&q(p,W[1]),R&4&&A.value!==W[2]&&q(A,W[2]),W[5]?I?I.p(W,R):(I=xt(W),I.c(),I.m(e,null)):I&&(I.d(1),I=null)},i:x,o:x,d(W){W&&m(e),I&&I.d(),j=!1,$(T)}}}function ll(t,e,n){const i=navigator.userAgent.includes("Windows");let l=i?"cmd":"sh",s=i?["/C"]:["-c"],{onMessage:o}=e,r='echo "hello world"',u=null,f="SOMETHING=value ANOTHER=2",h="",w="",p;function b(){return f.split(" ").reduce((S,j)=>{let[T,I]=j.split("=");return{...S,[T]:I}},{})}function k(){n(5,p=null);const S=nt.create(l,[...s,r],{cwd:u||null,env:b(),encoding:h||void 0});S.on("close",j=>{o(`command finished with code ${j.code} and signal ${j.signal}`),n(5,p=null)}),S.on("error",j=>o(`command error: "${j}"`)),S.stdout.on("data",j=>o(`command stdout: "${j}"`)),S.stderr.on("data",j=>o(`command stderr: "${j}"`)),S.spawn().then(j=>{n(5,p=j)}).catch(o)}function _(){p.kill().then(()=>o("killed child process")).catch(o)}function A(){p.write(w).catch(o)}function L(){r=this.value,n(0,r)}function v(){h=this.value,n(3,h)}function E(){u=this.value,n(1,u)}function O(){f=this.value,n(2,f)}function U(){w=this.value,n(4,w)}return t.$$set=S=>{"onMessage"in S&&n(9,o=S.onMessage)},[r,u,f,h,w,p,k,_,A,o,L,v,E,O,U]}class sl extends de{constructor(e){super(),ue(this,e,ll,il,se,{onMessage:9})}}class ol extends _n{constructor(e){super(e.rid),this.available=e.available,this.currentVersion=e.currentVersion,this.version=e.version,this.date=e.date,this.body=e.body}async downloadAndInstall(e){const n=new Ze;return e&&(n.onmessage=e),C("plugin:updater|download_and_install",{onEvent:n,rid:this.rid})}}async function rl(t){return t!=null&&t.headers&&(t.headers=Array.from(new Headers(t.headers).entries())),C("plugin:updater|check",{...t}).then(e=>e.available?new ol(e):null)}function al(t){let e,n,i,l,s,o;return{c(){e=d("div"),n=d("span"),i=Z(t[3]),l=Z("%"),s=y(),o=d("div"),c(n,"class","svelte-1xfvu87"),c(o,"class","progress-bar svelte-1xfvu87"),Ve(o,"width",t[3]+"%"),c(e,"class","progress svelte-1xfvu87")},m(r,u){g(r,e,u),a(e,n),a(n,i),a(n,l),a(e,s),a(e,o)},p(r,u){u&8&&he(i,r[3]),u&8&&Ve(o,"width",r[3]+"%")},d(r){r&&m(e)}}}function cl(t){let e,n,i;return{c(){e=d("button"),e.textContent="Install update",c(e,"class","btn")},m(l,s){g(l,e,s),n||(i=M(e,"click",t[5]),n=!0)},p:x,d(l){l&&m(e),n=!1,i()}}}function ul(t){let e,n,i;return{c(){e=d("button"),e.textContent="Check update",c(e,"class","btn")},m(l,s){g(l,e,s),n||(i=M(e,"click",t[4]),n=!0)},p:x,d(l){l&&m(e),n=!1,i()}}}function dl(t){let e;function n(s,o){return!s[0]&&!s[2]?ul:!s[1]&&s[2]?cl:al}let i=n(t),l=i(t);return{c(){e=d("div"),l.c(),c(e,"class","flex children:grow children:h10")},m(s,o){g(s,e,o),l.m(e,null)},p(s,[o]){i===(i=n(s))&&l?l.p(s,o):(l.d(1),l=i(s),l&&(l.c(),l.m(e,null)))},i:x,o:x,d(s){s&&m(e),l.d()}}}function fl(t,e,n){let i,{onMessage:l}=e,s,o,r,u=0,f=0;async function h(){n(0,s=!0);try{const p=await rl();l(`Should update: ${p.response.available}`),l(p.response),n(2,r=p)}catch(p){l(p)}finally{n(0,s=!1)}}async function w(){n(1,o=!0),n(8,f=0);try{await r.downloadAndInstall(p=>{switch(p.event){case"Started":n(7,u=p.data.contentLength);break;case"Progress":n(8,f+=p.data.chunkLength);break;case"Finished":break}}),l("Installation complete, restarting..."),await new Promise(p=>setTimeout(p,2e3)),await Cn()}catch(p){console.error(p),l(p)}finally{n(1,o=!1)}}return t.$$set=p=>{"onMessage"in p&&n(6,l=p.onMessage)},t.$$.update=()=>{t.$$.dirty&384&&n(3,i=u?Math.round(f/u*100):0)},[s,o,r,i,h,w,l,u,f]}class pl extends de{constructor(e){super(),ue(this,e,fl,dl,se,{onMessage:6})}}async function hl(t,e){return C("plugin:clipboard-manager|write",{data:{plainText:{label:e==null?void 0:e.label,text:t}}})}async function bl(){return(await C("plugin:clipboard-manager|read")).plainText.text}function ml(t){let e,n,i,l,s,o,r,u;return{c(){e=d("div"),n=d("input"),i=y(),l=d("button"),l.textContent="Write",s=y(),o=d("button"),o.textContent="Read",c(n,"class","grow input"),c(n,"placeholder","Text to write to the clipboard"),c(l,"class","btn"),c(l,"type","button"),c(o,"class","btn"),c(o,"type","button"),c(e,"class","flex gap-1")},m(f,h){g(f,e,h),a(e,n),q(n,t[0]),a(e,i),a(e,l),a(e,s),a(e,o),r||(u=[M(n,"input",t[4]),M(l,"click",t[1]),M(o,"click",t[2])],r=!0)},p(f,[h]){h&1&&n.value!==f[0]&&q(n,f[0])},i:x,o:x,d(f){f&&m(e),r=!1,$(u)}}}function gl(t,e,n){let{onMessage:i}=e,l="clipboard message";function s(){hl(l).then(()=>{i("Wrote to the clipboard")}).catch(i)}function o(){bl().then(u=>{i(`Clipboard contents: ${u}`)}).catch(i)}function r(){l=this.value,n(0,l)}return t.$$set=u=>{"onMessage"in u&&n(3,i=u.onMessage)},[l,s,o,i,r]}class _l extends de{constructor(e){super(),ue(this,e,gl,ml,se,{onMessage:3})}}function wl(t){let e;return{c(){e=d("div"),e.innerHTML='
Not available for Linux
',c(e,"class","flex flex-col gap-2")},m(n,i){g(n,e,i)},p:x,i:x,o:x,d(n){n&&m(e)}}}function vl(t,e,n){let{onMessage:i}=e;const l=window.constraints={audio:!0,video:!0};function s(r){const u=document.querySelector("video"),f=r.getVideoTracks();i("Got stream with constraints:",l),i(`Using video device: ${f[0].label}`),window.stream=r,u.srcObject=r}function o(r){if(r.name==="ConstraintNotSatisfiedError"){const u=l.video;i(`The resolution ${u.width.exact}x${u.height.exact} px is not supported by your device.`)}else r.name==="PermissionDeniedError"&&i("Permissions have not been granted to use your camera and microphone, you need to allow the page access to your devices in order for the demo to work.");i(`getUserMedia error: ${r.name}`,r)}return Pe(async()=>{try{const r=await navigator.mediaDevices.getUserMedia(l);s(r)}catch(r){o(r)}}),dn(()=>{window.stream.getTracks().forEach(function(r){r.stop()})}),t.$$set=r=>{"onMessage"in r&&n(0,i=r.onMessage)},[i]}class yl extends de{constructor(e){super(),ue(this,e,vl,wl,se,{onMessage:0})}}var xe;(function(t){t.QRCode="QR_CODE",t.UPC_A="UPC_A",t.UPC_E="UPC_E",t.EAN8="EAN_8",t.EAN13="EAN_13",t.Code39="CODE_39",t.Code93="CODE_93",t.Code128="CODE_128",t.Codabar="CODABAR",t.ITF="ITF",t.Aztec="AZTEC",t.DataMatrix="DATA_MATRIX",t.PDF417="PDF_417"})(xe||(xe={}));async function kl(t){return await C("plugin:barcode-scanner|scan",{...t})}async function Cl(){return await C("plugin:barcode-scanner|cancel")}async function Ll(){return await C("plugin:barcode-scanner|check_permissions").then(t=>t.camera)}async function Al(){return await C("plugin:barcode-scanner|request_permissions").then(t=>t.camera)}function Gt(t,e,n){const i=t.slice();return i[9]=e[n],i}function Qt(t){let e,n=t[9]+"",i;return{c(){e=d("option"),i=Z(n),e.__value=t[9],q(e,e.__value)},m(l,s){g(l,e,s),a(e,i)},p:x,d(l){l&&m(e)}}}function Sl(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I,W=ge(t[3]),R=[];for(let D=0;D
',c(l,"type","checkbox"),c(l,"id","scanner-windowed"),c(o,"for","scanner-windowed"),c(f,"class","input"),c(f,"id","format"),f.multiple=!0,t[2]===void 0&&je(()=>t[8].call(f)),c(w,"class","btn"),c(w,"type","button"),c(n,"class","svelte-u74si6"),be(n,"invisible",t[0]),c(k,"class","scanner-background svelte-u74si6"),c(E,"class","svelte-u74si6"),c(U,"class","btn"),c(U,"type","button"),c(v,"class","relative svelte-u74si6"),c(j,"class","square surround-cover svelte-u74si6"),c(L,"class","barcode-scanner--area--container svelte-u74si6"),c(A,"class","container full-height svelte-u74si6"),c(b,"class","scanning full-height svelte-u74si6"),be(b,"invisible",!t[0]),c(e,"class","full-height svelte-u74si6")},m(D,Y){g(D,e,Y),a(e,n),a(n,i),a(i,l),l.checked=t[1],a(i,s),a(i,o),a(n,r),a(n,u),a(u,f);for(let G=0;G{n(0,l=!1),i(b)}).catch(b=>{n(0,l=!1),i(b)})):i("Permission denied")}async function f(){await Cl(),n(0,l=!1),i("cancelled")}function h(){s=this.checked,n(1,s)}function w(){o=Wn(this),n(2,o),n(3,r)}return t.$$set=p=>{"onMessage"in p&&n(6,i=p.onMessage)},[l,s,o,r,u,f,i,h,w]}class Ml extends de{constructor(e){super(),ue(this,e,El,Sl,se,{onMessage:6})}}var Xt;(function(t){t[t.None=0]="None",t[t.TouchID=1]="TouchID",t[t.FaceID=2]="FaceID",t[t.Iris=3]="Iris"})(Xt||(Xt={}));async function Tl(t,e){return C("plugin:biometric|authenticate",{reason:t,...e})}function Rl(t){let e,n,i,l,s,o,r,u;return{c(){e=d("div"),n=d("input"),i=y(),l=d("label"),l.textContent="Allow device credential",s=y(),o=d("button"),o.textContent="Authenticate",c(n,"type","checkbox"),c(n,"id","dllowDeviceCredential"),c(l,"for","allowDeviceCredentiale"),c(o,"class","btn"),c(o,"id","cli-matches")},m(f,h){g(f,e,h),a(e,n),n.checked=t[0],a(e,i),a(e,l),g(f,s,h),g(f,o,h),r||(u=[M(n,"change",t[3]),M(o,"click",t[1])],r=!0)},p(f,[h]){h&1&&(n.checked=f[0])},i:x,o:x,d(f){f&&(m(e),m(s),m(o)),r=!1,$(u)}}}function Pl(t,e,n){let{onMessage:i}=e,l=!0;function s(){Tl("Tauri API wants to show it is awesome :)",{allowDeviceCredential:l,cancelTitle:"Cancel request",fallbackTitle:"Trying the fallback option",title:"Tauri API Auth",subtitle:"Please authenticate :)",confirmationRequired:!1,maxAttemps:1}).then(i).catch(i)}function o(){l=this.checked,n(0,l)}return t.$$set=r=>{"onMessage"in r&&n(2,i=r.onMessage)},[l,s,i,o]}class Ol extends de{constructor(e){super(),ue(this,e,Pl,Rl,se,{onMessage:2})}}const Il=[84],Ul=[85];var Yt;(function(t){t[t.IsoDep=0]="IsoDep",t[t.MifareClassic=1]="MifareClassic",t[t.MifareUltralight=2]="MifareUltralight",t[t.Ndef=3]="Ndef",t[t.NdefFormatable=4]="NdefFormatable",t[t.NfcA=5]="NfcA",t[t.NfcB=6]="NfcB",t[t.NfcBarcode=7]="NfcBarcode",t[t.NfcF=8]="NfcF",t[t.NfcV=9]="NfcV"})(Yt||(Yt={}));var lt;(function(t){t[t.Empty=0]="Empty",t[t.NfcWellKnown=1]="NfcWellKnown",t[t.Media=2]="Media",t[t.AbsoluteURI=3]="AbsoluteURI",t[t.NfcExternal=4]="NfcExternal",t[t.Unknown=5]="Unknown",t[t.Unchanged=6]="Unchanged"})(lt||(lt={}));function Mn(t,e,n,i){return{format:t,kind:typeof e=="string"?Array.from(new TextEncoder().encode(e)):e,id:typeof n=="string"?Array.from(new TextEncoder().encode(n)):n,payload:typeof i=="string"?Array.from(new TextEncoder().encode(i)):i}}function Dl(t,e,n="en"){const i=Array.from(new TextEncoder().encode(n+t));return i.unshift(n.length),Mn(lt.NfcWellKnown,Il,e||[],i)}const Jt=["","http://www.","https://www.","http://","https://","tel:","mailto:","ftp://anonymous:anonymous@","ftp://ftp.","ftps://","sftp://","smb://","nfs://","ftp://","dav://","news:","telnet://","imap:","rtsp://","urn:","pop:","sip:","sips:","tftp:","btspp://","btl2cap://","btgoep://","tcpobex://","irdaobex://","file://","urn:epc:id:","urn:epc:tag:","urn:epc:pat:","urn:epc:raw:","urn:epc:","urn:nfc:"];function Nl(t){let e="";Jt.slice(1).forEach(function(l){(!e||e==="urn:")&&t.indexOf(l)===0&&(e=l)}),e||(e="");const n=Array.from(new TextEncoder().encode(t.slice(e.length))),i=Jt.indexOf(e);return n.unshift(i),n}function zl(t,e){return Mn(lt.NfcWellKnown,Ul,e||[],Nl(t))}function Tn(t){const{type:e,...n}=t;return{[e]:n}}async function Wl(t,e){return await C("plugin:nfc|scan",{kind:Tn(t),...e})}async function jl(t,e){const{kind:n,...i}=e||{};return n&&(i.kind=Tn(n)),await C("plugin:nfc|write",{records:t,...i})}function Zt(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k;return{c(){e=d("div"),n=d("p"),n.textContent="Filters",i=y(),l=d("div"),s=d("input"),o=y(),r=d("input"),u=y(),f=d("input"),h=y(),w=d("div"),p=d("input"),c(s,"class","input"),c(s,"placeholder","Scheme"),Ve(s,"width","33%"),c(r,"class","input"),c(r,"placeholder","Host"),Ve(r,"width","33%"),c(f,"class","input"),c(f,"placeholder","Path prefix"),Ve(f,"width","33%"),c(l,"class","flex gap-2"),c(p,"class","input"),c(p,"placeholder","Mime type"),c(w,"class","flex gap-2"),c(e,"class","flex flex-col gap-2 children:grow")},m(_,A){g(_,e,A),a(e,n),a(e,i),a(e,l),a(l,s),q(s,t[4]),a(l,o),a(l,r),q(r,t[5]),a(l,u),a(l,f),q(f,t[6]),a(e,h),a(e,w),a(w,p),q(p,t[7]),b||(k=[M(s,"input",t[13]),M(r,"input",t[14]),M(f,"input",t[15]),M(p,"input",t[16])],b=!0)},p(_,A){A&16&&s.value!==_[4]&&q(s,_[4]),A&32&&r.value!==_[5]&&q(r,_[5]),A&64&&f.value!==_[6]&&q(f,_[6]),A&128&&p.value!==_[7]&&q(p,_[7])},d(_){_&&m(e),b=!1,$(k)}}}function Hl(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T=t[8]&&Zt(t);return{c(){e=d("div"),n=d("div"),i=d("div"),l=d("input"),s=y(),o=d("label"),o.textContent="Write data",r=y(),u=d("select"),f=d("option"),f.textContent="TAG",h=d("option"),h.textContent="NDEF",w=y(),T&&T.c(),p=y(),b=d("div"),k=d("p"),k.textContent="Write Records",_=y(),A=d("div"),L=d("input"),v=y(),E=d("input"),O=y(),U=d("button"),U.textContent="Scan",c(l,"type","checkbox"),c(l,"id","nfc-write"),c(o,"for","nfc-write"),f.__value="tag",q(f,f.__value),h.__value="ndef",q(h,h.__value),c(u,"class","input"),c(u,"id","request-method"),t[0]===void 0&&je(()=>t[12].call(u)),c(n,"class","flex gap-2 children:grow items-center"),c(L,"class","input"),c(L,"placeholder","Text record"),c(E,"class","input"),c(E,"placeholder","URI record"),c(A,"class","flex"),c(b,"class","flex flex-col gap-2 children:grow"),c(U,"class","btn")},m(I,W){g(I,e,W),a(e,n),a(n,i),a(i,l),l.checked=t[1],a(i,s),a(i,o),a(n,r),a(n,u),a(u,f),a(u,h),et(u,t[0],!0),a(e,w),T&&T.m(e,null),a(e,p),a(e,b),a(b,k),a(b,_),a(b,A),a(A,L),q(L,t[2]),a(A,v),a(A,E),q(E,t[3]),a(e,O),a(e,U),S||(j=[M(l,"change",t[11]),M(u,"change",t[12]),M(L,"input",t[17]),M(E,"input",t[18]),M(U,"click",t[9])],S=!0)},p(I,[W]){W&2&&(l.checked=I[1]),W&1&&et(u,I[0]),I[8]?T?T.p(I,W):(T=Zt(I),T.c(),T.m(e,p)):T&&(T.d(1),T=null),W&4&&L.value!==I[2]&&q(L,I[2]),W&8&&E.value!==I[3]&&q(E,I[3])},i:x,o:x,d(I){I&&m(e),T&&T.d(),S=!1,$(j)}}}function ql(t,e,n){let{onMessage:i}=e;const l=new TextDecoder;let s="tag",o=!1,r="",u="",f="",h="",w="",p="",b;Pe(async()=>{n(8,b=await kn()==="android")});async function k(){i(`NFC scanning ${s}`);const T=await Wl({type:s,uri:{scheme:f||null,host:h||null,pathPrefix:w||null},mimeType:p||null},{keepSessionAlive:o,message:"Hold your iPhone near an NFC tag",successMessage:"Tag successfully read"});if(i({id:l.decode(new Uint8Array(T.id)),kind:T.kind,records:T.records.map(I=>({id:l.decode(new Uint8Array(I.id)),kind:l.decode(new Uint8Array(I.kind)),payload:l.decode(new Uint8Array(I.payload)),tnf:I.tnf}))}),o){const I=[];r&&I.push(Dl(r,"tauriTextId")),u&&I.push(zl(u,"tauriUriId")),await jl(I,{successMessage:"Data written to tag"}),i("Wrote to tag")}}function _(){k().catch(i)}function A(){o=this.checked,n(1,o)}function L(){s=cn(this),n(0,s)}function v(){f=this.value,n(4,f)}function E(){h=this.value,n(5,h)}function O(){w=this.value,n(6,w)}function U(){p=this.value,n(7,p)}function S(){r=this.value,n(2,r)}function j(){u=this.value,n(3,u)}return t.$$set=T=>{"onMessage"in T&&n(10,i=T.onMessage)},[s,o,r,u,f,h,w,p,b,_,i,A,L,v,E,O,U,S,j]}class Vl extends de{constructor(e){super(),ue(this,e,ql,Hl,se,{onMessage:10})}}function Bt(t,e,n){const i=t.slice();return i[35]=e[n],i}function Kt(t,e,n){const i=t.slice();return i[38]=e[n],i}function $t(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_;function A(S,j){return S[3]?xl:Fl}let L=A(t),v=L(t);function E(S,j){return S[2]?Ql:Gl}let O=E(t),U=O(t);return{c(){e=d("div"),n=d("span"),n.textContent="Tauri API Validation",i=y(),l=d("span"),s=d("span"),v.c(),r=y(),u=d("span"),u.innerHTML='
',f=y(),h=d("span"),U.c(),p=y(),b=d("span"),b.innerHTML='
',c(n,"class","lt-sm:pl-10 text-darkPrimaryText"),c(s,"title",o=t[3]?"Switch to Light mode":"Switch to Dark mode"),c(s,"class","hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker"),c(u,"title","Minimize"),c(u,"class","hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker"),c(h,"title",w=t[2]?"Restore":"Maximize"),c(h,"class","hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker"),c(b,"title","Close"),c(b,"class","hover:bg-red-700 dark:hover:bg-red-700 hover:text-darkPrimaryText active:bg-red-700/90 dark:active:bg-red-700/90 active:text-darkPrimaryText"),c(l,"class","h-100% children:h-100% children:w-12 children:inline-flex children:items-center children:justify-center"),c(e,"class","w-screen select-none h-8 pl-2 flex justify-between items-center absolute text-primaryText dark:text-darkPrimaryText"),c(e,"data-tauri-drag-region","")},m(S,j){g(S,e,j),a(e,n),a(e,i),a(e,l),a(l,s),v.m(s,null),a(l,r),a(l,u),a(l,f),a(l,h),U.m(h,null),a(l,p),a(l,b),k||(_=[M(s,"click",t[14]),M(u,"click",t[11]),M(h,"click",t[12]),M(b,"click",t[13])],k=!0)},p(S,j){L!==(L=A(S))&&(v.d(1),v=L(S),v&&(v.c(),v.m(s,null))),j[0]&8&&o!==(o=S[3]?"Switch to Light mode":"Switch to Dark mode")&&c(s,"title",o),O!==(O=E(S))&&(U.d(1),U=O(S),U&&(U.c(),U.m(h,null))),j[0]&4&&w!==(w=S[2]?"Restore":"Maximize")&&c(h,"title",w)},d(S){S&&m(e),v.d(),U.d(),k=!1,$(_)}}}function Fl(t){let e;return{c(){e=d("div"),c(e,"class","i-ph-moon")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function xl(t){let e;return{c(){e=d("div"),c(e,"class","i-ph-sun")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Gl(t){let e;return{c(){e=d("div"),c(e,"class","i-codicon-chrome-maximize")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Ql(t){let e;return{c(){e=d("div"),c(e,"class","i-codicon-chrome-restore")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Xl(t){let e;return{c(){e=d("span"),c(e,"class","i-codicon-menu animate-duration-300ms animate-fade-in")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function Yl(t){let e;return{c(){e=d("span"),c(e,"class","i-codicon-close animate-duration-300ms animate-fade-in")},m(n,i){g(n,e,i)},d(n){n&&m(e)}}}function en(t){let e,n,i,l,s,o,r,u,f;function h(b,k){return b[3]?Zl:Jl}let w=h(t),p=w(t);return{c(){e=d("a"),p.c(),n=y(),i=d("br"),l=y(),s=d("div"),o=y(),r=d("br"),c(e,"href","##"),c(e,"class","nv justify-between h-8"),c(s,"class","bg-white/5 h-2px")},m(b,k){g(b,e,k),p.m(e,null),g(b,n,k),g(b,i,k),g(b,l,k),g(b,s,k),g(b,o,k),g(b,r,k),u||(f=M(e,"click",t[14]),u=!0)},p(b,k){w!==(w=h(b))&&(p.d(1),p=w(b),p&&(p.c(),p.m(e,null)))},d(b){b&&(m(e),m(n),m(i),m(l),m(s),m(o),m(r)),p.d(),u=!1,f()}}}function Jl(t){let e,n;return{c(){e=Z(`Switch to Dark mode + `),n=d("div"),c(n,"class","i-ph-moon")},m(i,l){g(i,e,l),g(i,n,l)},d(i){i&&(m(e),m(n))}}}function Zl(t){let e,n;return{c(){e=Z(`Switch to Light mode + `),n=d("div"),c(n,"class","i-ph-sun")},m(i,l){g(i,e,l),g(i,n,l)},d(i){i&&(m(e),m(n))}}}function Bl(t){let e,n,i,l,s,o,r;function u(){return t[22](t[38])}return{c(){e=d("a"),n=d("div"),i=y(),l=d("p"),l.textContent=`${t[38].label}`,c(n,"class",t[38].icon+" mr-2"),c(e,"href","##"),c(e,"class",s="nv "+(t[1]===t[38]?"nv_selected":""))},m(f,h){g(f,e,h),a(e,n),a(e,i),a(e,l),o||(r=M(e,"click",u),o=!0)},p(f,h){t=f,h[0]&2&&s!==(s="nv "+(t[1]===t[38]?"nv_selected":""))&&c(e,"class",s)},d(f){f&&m(e),o=!1,r()}}}function tn(t){let e,n=t[38]&&Bl(t);return{c(){n&&n.c(),e=Ie()},m(i,l){n&&n.m(i,l),g(i,e,l)},p(i,l){i[38]&&n.p(i,l)},d(i){i&&m(e),n&&n.d(i)}}}function nn(t){let e,n=t[35].html+"",i;return{c(){e=new jn(!1),i=Ie(),e.a=i},m(l,s){e.m(n,l,s),g(l,i,s)},p(l,s){s[0]&128&&n!==(n=l[35].html+"")&&e.p(n)},d(l){l&&(m(i),e.d())}}}function Kl(t){let e,n,i,l,s,o,r,u,f,h,w,p,b,k,_,A,L,v,E,O,U,S,j,T,I,W,R=t[1].label+"",D,Y,G,P,z,oe,ee,re,B,te,F,K,H,Q,fe,me,Ae,He,ae=t[6]&&$t(t);function Ee(N,J){return N[0]?Yl:Xl}let ve=Ee(t),we=ve(t),ne=!t[6]&&en(t),ye=ge(t[9]),ie=[];for(let N=0;N`,w=y(),p=d("a"),p.innerHTML=`GitHub + `,b=y(),k=d("a"),k.innerHTML=`Source + `,_=y(),A=d("br"),L=y(),v=d("div"),E=y(),O=d("br"),U=y(),S=d("div");for(let N=0;N',Q=y(),fe=d("div");for(let N=0;N{Ye(V,1)}),ot()}ke?(z=vt(ke,Me(N)),tt(z.$$.fragment),_e(z.$$.fragment,1),Xe(z,P,null)):z=null}if(J[0]&128){Ce=ge(N[7]);let V;for(V=0;V{await confirm("Are you sure?")||F.preventDefault()}),l.onFileDropEvent(F=>{E(`File drop: ${JSON.stringify(F.payload)}`)});const s=navigator.userAgent.toLowerCase(),o=s.includes("android")||s.includes("iphone"),r=[{label:"Welcome",component:ai,icon:"i-ph-hand-waving"},{label:"Communication",component:bi,icon:"i-codicon-radio-tower"},!o&&{label:"CLI",component:fi,icon:"i-codicon-terminal"},{label:"Dialog",component:Ii,icon:"i-codicon-multiple-windows"},{label:"File system",component:zi,icon:"i-codicon-files"},{label:"HTTP",component:Xi,icon:"i-ph-globe-hemisphere-west"},{label:"Notifications",component:Zi,icon:"i-codicon-bell-dot"},!o&&{label:"Shortcuts",component:nl,icon:"i-codicon-record-keys"},{label:"Shell",component:sl,icon:"i-codicon-terminal-bash"},!o&&{label:"Updater",component:pl,icon:"i-codicon-cloud-download"},{label:"Clipboard",component:_l,icon:"i-codicon-clippy"},{label:"WebRTC",component:yl,icon:"i-ph-broadcast"},o&&{label:"Scanner",component:Ml,icon:"i-ph-scan"},o&&{label:"NFC",component:Vl,icon:"i-ph-nfc"},o&&{label:"Biometric",component:Ol,icon:"i-ph-scan"}];let u=r[0];function f(F){n(1,u=F)}let h;Pe(async()=>{n(2,h=await l.isMaximized()),l.onResized(async()=>{n(2,h=await l.isMaximized())})});function w(){l.minimize()}async function p(){await l.isMaximized()?l.unmaximize():l.maximize()}let b=!1;async function k(){b||(b=await wi("Are you sure that you want to close this window?",{title:"Tauri API"}),b&&l.close())}let _;Pe(()=>{n(3,_=localStorage&&localStorage.getItem("theme")=="dark"),sn(_)});function A(){n(3,_=!_),sn(_)}let L=bn([]);an(t,L,F=>n(7,i=F));let v;async function E(F){L.update(K=>[...K,{html:`
[${new Date().toLocaleTimeString()}]: `+(typeof F=="string"?F:JSON.stringify(F,null,1))+"
"}]),await kt(),v&&n(4,v.scrollTop=v.scrollHeight,v)}async function O(F){L.update(K=>[...K,{html:`
[${new Date().toLocaleTimeString()}]: `+F+"
"}]),await kt(),v&&n(4,v.scrollTop=v.scrollHeight,v)}function U(){L.update(()=>[])}let S,j,T;function I(F){T=F.clientY;const K=window.getComputedStyle(S);j=parseInt(K.height,10);const H=fe=>{const me=fe.clientY-T,Ae=j-me;n(5,S.style.height=`${Ae{document.removeEventListener("mouseup",Q),document.removeEventListener("mousemove",H)};document.addEventListener("mouseup",Q),document.addEventListener("mousemove",H)}let W;Pe(async()=>{n(6,W=await kn()==="windows")});let R=!1,D,Y,G=!1,P=0,z=0;const oe=(F,K,H)=>Math.min(Math.max(K,F),H);Pe(()=>{n(20,D=document.querySelector("#sidebar")),Y=document.querySelector("#sidebarToggle"),document.addEventListener("click",F=>{Y.contains(F.target)?n(0,R=!R):R&&!D.contains(F.target)&&n(0,R=!1)}),document.addEventListener("touchstart",F=>{if(Y.contains(F.target))return;const K=F.touches[0].clientX;(0{if(G){const K=F.touches[0].clientX;z=K;const H=(K-P)/10;D.style.setProperty("--translate-x",`-${oe(0,R?0-H:18.75-H,18.75)}rem`)}}),document.addEventListener("touchend",()=>{if(G){const F=(z-P)/10;n(0,R=R?F>-(18.75/2):F>18.75/2)}G=!1})});const ee=()=>Xn("https://tauri.app/"),re=F=>{f(F),n(0,R=!1)};function B(F){Qe[F?"unshift":"push"](()=>{v=F,n(4,v)})}function te(F){Qe[F?"unshift":"push"](()=>{S=F,n(5,S)})}return t.$$.update=()=>{if(t.$$.dirty[0]&1){const F=document.querySelector("#sidebar");F&&$l(F,R)}},[R,u,h,_,v,S,W,i,o,r,f,w,p,k,A,L,E,O,U,I,D,ee,re,B,te]}class ts extends de{constructor(e){super(),ue(this,e,es,Kl,se,{},null,[-1,-1])}}new ts({target:document.querySelector("#app")}); diff --git a/examples/api/dist/index.html b/examples/api/dist/index.html new file mode 100644 index 00000000..04b07493 --- /dev/null +++ b/examples/api/dist/index.html @@ -0,0 +1,17 @@ + + + + + + Svelte + Vite App + + + + + +
+ + diff --git a/examples/api/dist/tauri_logo.png b/examples/api/dist/tauri_logo.png new file mode 100644 index 00000000..2c53b8c4 Binary files /dev/null and b/examples/api/dist/tauri_logo.png differ diff --git a/package.json b/package.json index 7c7e863d..90d7d6de 100644 --- a/package.json +++ b/package.json @@ -12,20 +12,20 @@ "devDependencies": { "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", - "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.13.2", - "@typescript-eslint/parser": "6.13.2", + "@rollup/plugin-typescript": "11.1.6", + "@typescript-eslint/eslint-plugin": "6.20.0", + "@typescript-eslint/parser": "6.20.0", "covector": "^0.10.2", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", - "eslint-config-standard-with-typescript": "40.0.0", - "eslint-plugin-import": "2.29.0", - "eslint-plugin-n": "16.3.1", + "eslint-config-standard-with-typescript": "43.0.1", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-security": "1.7.1", - "prettier": "3.1.0", - "rollup": "4.6.1", - "typescript": "5.3.2" + "eslint-plugin-security": "2.1.0", + "prettier": "3.2.2", + "rollup": "4.9.6", + "typescript": "5.3.3" }, "resolutions": { "semver": ">=7.5.2", diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 8b2b31dc..826cf51d 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -27,8 +27,10 @@ authenticator = "0.3.1" once_cell = "1" sha2 = "0.10" base64 = "0.21" -u2f = "0.2" -chrono = ">= 0.4.0, <0.4.30" +chrono = "0.4" +bytes = "1" +byteorder = "1" +openssl = "0.10" [dev-dependencies] rand = "0.8" diff --git a/plugins/authenticator/src/error.rs b/plugins/authenticator/src/error.rs index 8cc5df00..214706e6 100644 --- a/plugins/authenticator/src/error.rs +++ b/plugins/authenticator/src/error.rs @@ -11,7 +11,7 @@ pub enum Error { #[error(transparent)] JSON(#[from] serde_json::Error), #[error(transparent)] - U2F(#[from] u2f::u2ferror::U2fError), + U2F(#[from] crate::u2f_crate::u2ferror::U2fError), #[error(transparent)] Auth(#[from] authenticator::errors::AuthenticatorError), } diff --git a/plugins/authenticator/src/lib.rs b/plugins/authenticator/src/lib.rs index 92fef471..b9979b7f 100644 --- a/plugins/authenticator/src/lib.rs +++ b/plugins/authenticator/src/lib.rs @@ -17,6 +17,7 @@ mod auth; mod error; mod u2f; +mod u2f_crate; use tauri::{ plugin::{Builder as PluginBuilder, TauriPlugin}, diff --git a/plugins/authenticator/src/u2f.rs b/plugins/authenticator/src/u2f.rs index 12f1d6c3..9e246094 100644 --- a/plugins/authenticator/src/u2f.rs +++ b/plugins/authenticator/src/u2f.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use crate::u2f_crate::messages::*; +use crate::u2f_crate::protocol::*; +use crate::u2f_crate::register::*; use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; use chrono::prelude::*; use serde::Serialize; use std::convert::Into; -use u2f::messages::*; -use u2f::protocol::*; -use u2f::register::*; static VERSION: &str = "U2F_V2"; diff --git a/plugins/authenticator/src/u2f_crate/LICENSE b/plugins/authenticator/src/u2f_crate/LICENSE new file mode 100644 index 00000000..d26d5f6c --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/LICENSE @@ -0,0 +1,8 @@ +Copyright (c) 2017 + +Licensed under either of + + * Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0) + * MIT license (http://opensource.org/licenses/MIT) + +at your option. \ No newline at end of file diff --git a/plugins/authenticator/src/u2f_crate/authorization.rs b/plugins/authenticator/src/u2f_crate/authorization.rs new file mode 100644 index 00000000..0e667ea6 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/authorization.rs @@ -0,0 +1,66 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use bytes::{Buf, BufMut}; +use openssl::sha::sha256; +use serde::Serialize; +use std::io::Cursor; + +use crate::u2f_crate::u2ferror::U2fError; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +#[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Authorization { + pub counter: u32, + pub user_presence: bool, +} + +pub fn parse_sign_response( + app_id: String, + client_data: Vec, + public_key: Vec, + sign_data: Vec, +) -> Result { + if sign_data.len() <= 5 { + return Err(U2fError::InvalidSignatureData); + } + + let user_presence_flag = &sign_data[0]; + let counter = &sign_data[1..=4]; + let signature = &sign_data[5..]; + + // Let's build the msg to verify the signature + let app_id_hash = sha256(&app_id.into_bytes()); + let client_data_hash = sha256(&client_data[..]); + + let mut msg = vec![]; + msg.put(app_id_hash.as_ref()); + msg.put_u8(*user_presence_flag); + msg.put(counter); + msg.put(client_data_hash.as_ref()); + + let public_key = super::crypto::NISTP256Key::from_bytes(&public_key)?; + + // The signature is to be verified by the relying party using the public key obtained during registration. + let verified = public_key.verify_signature(signature, msg.as_ref())?; + if !verified { + return Err(U2fError::BadSignature); + } + + let authorization = Authorization { + counter: get_counter(counter), + user_presence: true, + }; + + Ok(authorization) +} + +fn get_counter(counter: &[u8]) -> u32 { + let mut buf = Cursor::new(counter); + buf.get_u32() +} diff --git a/plugins/authenticator/src/u2f_crate/crypto.rs b/plugins/authenticator/src/u2f_crate/crypto.rs new file mode 100644 index 00000000..ddcdf1b6 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/crypto.rs @@ -0,0 +1,157 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +//! Cryptographic operation wrapper for Webauthn. This module exists to +//! allow ease of auditing, safe operation wrappers for the webauthn library, +//! and cryptographic provider abstraction. This module currently uses OpenSSL +//! as the cryptographic primitive provider. + +// Source can be found here: https://github.com/Firstyear/webauthn-rs/blob/master/src/crypto.rs + +#![allow(non_camel_case_types)] + +use openssl::{bn, ec, hash, nid, sign, x509}; +use std::convert::TryFrom; + +// use super::constants::*; +use crate::u2f_crate::u2ferror::U2fError; +use openssl::pkey::Public; + +// use super::proto::*; + +// Why OpenSSL over another rust crate? +// - Well, the openssl crate allows us to reconstruct a public key from the +// x/y group coords, where most others want a pkcs formatted structure. As +// a result, it's easiest to use openssl as it gives us exactly what we need +// for these operations, and despite it's many challenges as a library, it +// has resources and investment into it's maintenance, so we can a least +// assert a higher level of confidence in it that . + +// Object({Integer(-3): Bytes([48, 185, 178, 204, 113, 186, 105, 138, 190, 33, 160, 46, 131, 253, 100, 177, 91, 243, 126, 128, 245, 119, 209, 59, 186, 41, 215, 196, 24, 222, 46, 102]), Integer(-2): Bytes([158, 212, 171, 234, 165, 197, 86, 55, 141, 122, 253, 6, 92, 242, 242, 114, 158, 221, 238, 163, 127, 214, 120, 157, 145, 226, 232, 250, 144, 150, 218, 138]), Integer(-1): U64(1), Integer(1): U64(2), Integer(3): I64(-7)}) +// + +/// An X509PublicKey. This is what is otherwise known as a public certificate +/// which comprises a public key and other signed metadata related to the issuer +/// of the key. +pub struct X509PublicKey { + pubk: x509::X509, +} + +impl std::fmt::Debug for X509PublicKey { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(f, "X509PublicKey") + } +} + +impl TryFrom<&[u8]> for X509PublicKey { + type Error = U2fError; + + // Must be DER bytes. If you have PEM, base64decode first! + fn try_from(d: &[u8]) -> Result { + let pubk = x509::X509::from_der(d)?; + Ok(X509PublicKey { pubk }) + } +} + +impl X509PublicKey { + pub(crate) fn common_name(&self) -> Option { + let cert = &self.pubk; + + let subject = cert.subject_name(); + let common = subject + .entries_by_nid(openssl::nid::Nid::COMMONNAME) + .next() + .map(|b| b.data().as_slice()); + + if let Some(common) = common { + std::str::from_utf8(common).ok().map(|s| s.to_string()) + } else { + None + } + } + + pub(crate) fn is_secp256r1(&self) -> Result { + // Can we get the public key? + let pk = self.pubk.public_key()?; + + let ec_key = pk.ec_key()?; + + ec_key.check_key()?; + + let ec_grpref = ec_key.group(); + + let ec_curve = ec_grpref.curve_name().ok_or(U2fError::OpenSSLNoCurveName)?; + + Ok(ec_curve == nid::Nid::X9_62_PRIME256V1) + } + + pub(crate) fn verify_signature( + &self, + signature: &[u8], + verification_data: &[u8], + ) -> Result { + let pkey = self.pubk.public_key()?; + + // TODO: Should this determine the hash type from the x509 cert? Or other? + let mut verifier = sign::Verifier::new(hash::MessageDigest::sha256(), &pkey)?; + verifier.update(verification_data)?; + Ok(verifier.verify(signature)?) + } +} + +pub struct NISTP256Key { + /// The key's public X coordinate. + pub x: [u8; 32], + /// The key's public Y coordinate. + pub y: [u8; 32], +} + +impl NISTP256Key { + pub fn from_bytes(public_key_bytes: &[u8]) -> Result { + if public_key_bytes.len() != 65 { + return Err(U2fError::InvalidPublicKey); + } + + if public_key_bytes[0] != 0x04 { + return Err(U2fError::InvalidPublicKey); + } + + let mut x: [u8; 32] = Default::default(); + x.copy_from_slice(&public_key_bytes[1..=32]); + + let mut y: [u8; 32] = Default::default(); + y.copy_from_slice(&public_key_bytes[33..=64]); + + Ok(NISTP256Key { x, y }) + } + + fn get_key(&self) -> Result, U2fError> { + let ec_group = ec::EcGroup::from_curve_name(openssl::nid::Nid::X9_62_PRIME256V1)?; + + let xbn = bn::BigNum::from_slice(&self.x)?; + let ybn = bn::BigNum::from_slice(&self.y)?; + + let ec_key = openssl::ec::EcKey::from_public_key_affine_coordinates(&ec_group, &xbn, &ybn)?; + + // Validate the key is sound. IIRC this actually checks the values + // are correctly on the curve as specified + ec_key.check_key()?; + + Ok(ec_key) + } + + pub fn verify_signature( + &self, + signature: &[u8], + verification_data: &[u8], + ) -> Result { + let pkey = self.get_key()?; + + let signature = openssl::ecdsa::EcdsaSig::from_der(signature)?; + let hash = openssl::sha::sha256(verification_data); + + Ok(signature.verify(hash.as_ref(), &pkey)?) + } +} diff --git a/plugins/authenticator/src/u2f_crate/messages.rs b/plugins/authenticator/src/u2f_crate/messages.rs new file mode 100644 index 00000000..be22f965 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/messages.rs @@ -0,0 +1,55 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +// As defined by FIDO U2F Javascript API. +// https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html#registration + +use serde::{Deserialize, Serialize}; + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct U2fRegisterRequest { + pub app_id: String, + pub register_requests: Vec, + pub registered_keys: Vec, +} + +#[derive(Serialize)] +pub struct RegisterRequest { + pub version: String, + pub challenge: String, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct RegisteredKey { + pub version: String, + pub key_handle: Option, + pub app_id: String, +} + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RegisterResponse { + pub registration_data: String, + pub version: String, + pub client_data: String, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct U2fSignRequest { + pub app_id: String, + pub challenge: String, + pub registered_keys: Vec, +} + +#[derive(Clone, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SignResponse { + pub key_handle: String, + pub signature_data: String, + pub client_data: String, +} diff --git a/plugins/authenticator/src/u2f_crate/mod.rs b/plugins/authenticator/src/u2f_crate/mod.rs new file mode 100644 index 00000000..ab2a1e0c --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/mod.rs @@ -0,0 +1,13 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +mod util; + +pub mod authorization; +mod crypto; +pub mod messages; +pub mod protocol; +pub mod register; +pub mod u2ferror; diff --git a/plugins/authenticator/src/u2f_crate/protocol.rs b/plugins/authenticator/src/u2f_crate/protocol.rs new file mode 100644 index 00000000..94ebce6f --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/protocol.rs @@ -0,0 +1,192 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use crate::u2f_crate::authorization::*; +use crate::u2f_crate::messages::*; +use crate::u2f_crate::register::*; +use crate::u2f_crate::u2ferror::U2fError; +use crate::u2f_crate::util::*; + +use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; +use chrono::prelude::*; +use chrono::Duration; +use serde::{Deserialize, Serialize}; + +type Result = ::std::result::Result; + +#[derive(Clone)] +pub struct U2f { + app_id: String, +} + +#[derive(Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Challenge { + pub app_id: String, + pub challenge: String, + pub timestamp: String, +} + +impl Challenge { + // Not used in this plugin. + #[allow(dead_code)] + pub fn new() -> Self { + Challenge { + app_id: String::new(), + challenge: String::new(), + timestamp: String::new(), + } + } +} + +impl U2f { + // The app ID is a string used to uniquely identify an U2F app + pub fn new(app_id: String) -> Self { + U2f { app_id } + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn generate_challenge(&self) -> Result { + let utc: DateTime = Utc::now(); + + let challenge_bytes = generate_challenge(32)?; + let challenge = Challenge { + challenge: URL_SAFE_NO_PAD.encode(challenge_bytes), + timestamp: format!("{:?}", utc), + app_id: self.app_id.clone(), + }; + + Ok(challenge.clone()) + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn request( + &self, + challenge: Challenge, + registrations: Vec, + ) -> Result { + let u2f_request = U2fRegisterRequest { + app_id: self.app_id.clone(), + register_requests: self.register_request(challenge), + registered_keys: self.registered_keys(registrations), + }; + + Ok(u2f_request) + } + + fn register_request(&self, challenge: Challenge) -> Vec { + let mut requests: Vec = vec![]; + + let request = RegisterRequest { + version: U2F_V2.into(), + challenge: challenge.challenge, + }; + requests.push(request); + + requests + } + + pub fn register_response( + &self, + challenge: Challenge, + response: RegisterResponse, + ) -> Result { + if expiration(challenge.timestamp) > Duration::seconds(300) { + return Err(U2fError::ChallengeExpired); + } + + let registration_data: Vec = URL_SAFE_NO_PAD + .decode(&response.registration_data[..]) + .unwrap(); + let client_data: Vec = URL_SAFE_NO_PAD.decode(&response.client_data[..]).unwrap(); + + parse_registration(challenge.app_id, client_data, registration_data) + } + + fn registered_keys(&self, registrations: Vec) -> Vec { + let mut keys: Vec = vec![]; + + for registration in registrations { + keys.push(get_registered_key( + self.app_id.clone(), + registration.key_handle, + )); + } + + keys + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn sign_request( + &self, + challenge: Challenge, + registrations: Vec, + ) -> U2fSignRequest { + let mut keys: Vec = vec![]; + + for registration in registrations { + keys.push(get_registered_key( + self.app_id.clone(), + registration.key_handle, + )); + } + + let signed_request = U2fSignRequest { + app_id: self.app_id.clone(), + challenge: URL_SAFE_NO_PAD.encode(challenge.challenge.as_bytes()), + registered_keys: keys, + }; + + signed_request + } + + pub fn sign_response( + &self, + challenge: Challenge, + reg: Registration, + sign_resp: SignResponse, + counter: u32, + ) -> Result { + if expiration(challenge.timestamp) > Duration::seconds(300) { + return Err(U2fError::ChallengeExpired); + } + + if sign_resp.key_handle != get_encoded(®.key_handle[..]) { + return Err(U2fError::WrongKeyHandler); + } + + let client_data: Vec = URL_SAFE_NO_PAD + .decode(&sign_resp.client_data[..]) + .map_err(|_e| U2fError::InvalidClientData)?; + let sign_data: Vec = URL_SAFE_NO_PAD + .decode(&sign_resp.signature_data[..]) + .map_err(|_e| U2fError::InvalidSignatureData)?; + + let public_key = reg.pub_key; + + let auth = parse_sign_response( + self.app_id.clone(), + client_data.clone(), + public_key, + sign_data.clone(), + ); + + match auth { + Ok(ref res) => { + // CounterTooLow is raised when the counter value received from the device is + // lower than last stored counter value. + if res.counter < counter { + Err(U2fError::CounterTooLow) + } else { + Ok(res.counter) + } + } + Err(e) => Err(e), + } + } +} diff --git a/plugins/authenticator/src/u2f_crate/register.rs b/plugins/authenticator/src/u2f_crate/register.rs new file mode 100644 index 00000000..6b47817d --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/register.rs @@ -0,0 +1,102 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use byteorder::{BigEndian, ByteOrder}; +use bytes::{BufMut, Bytes}; +use openssl::sha::sha256; +use serde::Serialize; + +use crate::u2f_crate::messages::RegisteredKey; +use crate::u2f_crate::u2ferror::U2fError; +use crate::u2f_crate::util::*; +use std::convert::TryFrom; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +// Single enrolment or pairing between an application and a token. +#[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Registration { + pub key_handle: Vec, + pub pub_key: Vec, + + // AttestationCert can be null for Authenticate requests. + pub attestation_cert: Option>, + pub device_name: Option, +} + +pub fn parse_registration( + app_id: String, + client_data: Vec, + registration_data: Vec, +) -> Result { + let reserved_byte = registration_data[0]; + if reserved_byte != 0x05 { + return Err(U2fError::InvalidReservedByte); + } + + let mut mem = Bytes::from(registration_data); + + //Start parsing ... advance the reserved byte. + let _ = mem.split_to(1); + + // P-256 NIST elliptic curve + let public_key = mem.split_to(65); + + // Key Handle + let key_handle_size = mem.split_to(1); + let key_len = BigEndian::read_uint(&key_handle_size[..], 1); + let key_handle = mem.split_to(key_len as usize); + + // The certificate length needs to be inferred by parsing. + let cert_len = asn_length(mem.clone()).unwrap(); + let attestation_certificate = mem.split_to(cert_len); + + // Remaining data corresponds to the signature + let signature = mem; + + // Let's build the msg to verify the signature + let app_id_hash = sha256(&app_id.into_bytes()); + let client_data_hash = sha256(&client_data[..]); + + let mut msg = vec![0x00]; // A byte reserved for future use [1 byte] with the value 0x00 + msg.put(app_id_hash.as_ref()); + msg.put(client_data_hash.as_ref()); + msg.put(key_handle.clone()); + msg.put(public_key.clone()); + + // The signature is to be verified by the relying party using the public key certified + // in the attestation certificate. + let cerificate_public_key = + super::crypto::X509PublicKey::try_from(&attestation_certificate[..])?; + + if !(cerificate_public_key.is_secp256r1()?) { + return Err(U2fError::BadCertificate); + } + + let verified = cerificate_public_key.verify_signature(&signature[..], &msg[..])?; + + if !verified { + return Err(U2fError::BadCertificate); + } + + let registration = Registration { + key_handle: key_handle[..].to_vec(), + pub_key: public_key[..].to_vec(), + attestation_cert: Some(attestation_certificate[..].to_vec()), + device_name: cerificate_public_key.common_name(), + }; + + Ok(registration) +} + +pub fn get_registered_key(app_id: String, key_handle: Vec) -> RegisteredKey { + RegisteredKey { + app_id, + version: U2F_V2.into(), + key_handle: Some(get_encoded(key_handle.as_slice())), + } +} diff --git a/plugins/authenticator/src/u2f_crate/u2ferror.rs b/plugins/authenticator/src/u2f_crate/u2ferror.rs new file mode 100644 index 00000000..377af9d8 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/u2ferror.rs @@ -0,0 +1,40 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum U2fError { + #[error("ASM1 Decoder error")] + Asm1DecoderError, + #[error("Not able to verify signature")] + BadSignature, + #[error("Not able to generate random bytes")] + RandomSecureBytesError, + #[error("Invalid Reserved Byte")] + InvalidReservedByte, + #[error("Challenge Expired")] + ChallengeExpired, + #[error("Wrong Key Handler")] + WrongKeyHandler, + #[error("Invalid Client Data")] + InvalidClientData, + #[error("Invalid Signature Data")] + InvalidSignatureData, + #[error("Invalid User Presence Byte")] + InvalidUserPresenceByte, + #[error("Failed to parse certificate")] + BadCertificate, + #[error("Not Trusted Anchor")] + NotTrustedAnchor, + #[error("Counter too low")] + CounterTooLow, + #[error("Invalid public key")] + OpenSSLNoCurveName, + #[error("OpenSSL no curve name")] + InvalidPublicKey, + #[error(transparent)] + OpenSSLError(#[from] openssl::error::ErrorStack), +} diff --git a/plugins/authenticator/src/u2f_crate/util.rs b/plugins/authenticator/src/u2f_crate/util.rs new file mode 100644 index 00000000..6a7e3fbd --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/util.rs @@ -0,0 +1,67 @@ +// Copyright 2021 Flavio Oliveira +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use crate::u2f_crate::u2ferror::U2fError; +use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; +use bytes::Bytes; +use chrono::prelude::*; +use chrono::Duration; +use openssl::rand; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +pub const U2F_V2: &str = "U2F_V2"; + +// Generates a challenge from a secure, random source. +pub fn generate_challenge(size: usize) -> Result> { + let mut bytes: Vec = vec![0; size]; + rand::rand_bytes(&mut bytes).map_err(|_e| U2fError::RandomSecureBytesError)?; + Ok(bytes) +} + +pub fn expiration(timestamp: String) -> Duration { + let now: DateTime = Utc::now(); + + let ts = timestamp.parse::>(); + + now.signed_duration_since(ts.unwrap()) +} + +// Decode initial bytes of buffer as ASN and return the length of the encoded structure. +// http://en.wikipedia.org/wiki/X.690 +pub fn asn_length(mem: Bytes) -> Result { + let buffer: &[u8] = &mem[..]; + + if mem.len() < 2 || buffer[0] != 0x30 { + // Type + return Err(U2fError::Asm1DecoderError); + } + + let len = buffer[1]; // Len + if len & 0x80 == 0 { + return Ok((len & 0x7f) as usize); + } + + let numbem_of_bytes = len & 0x7f; + if numbem_of_bytes == 0 { + return Err(U2fError::Asm1DecoderError); + } + + let mut length: usize = 0; + for num in 0..numbem_of_bytes { + length = length * 0x100 + (buffer[(2 + num) as usize] as usize); + } + + length += numbem_of_bytes as usize; + + Ok(length + 2) // Add the 2 initial bytes: type and length. +} + +pub fn get_encoded(data: &[u8]) -> String { + let encoded: String = URL_SAFE_NO_PAD.encode(data); + + encoded.trim_end_matches('=').to_string() +} diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.lock b/plugins/deep-link/examples/app/src-tauri/Cargo.lock deleted file mode 100644 index adce9aad..00000000 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.lock +++ /dev/null @@ -1,4100 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aho-corasick" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock", - "autocfg", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite", - "log", - "parking", - "polling", - "rustix", - "slab", - "socket2", - "waker-fn", -] - -[[package]] -name = "async-lock" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-process" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" -dependencies = [ - "async-io", - "async-lock", - "autocfg", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "rustix", - "signal-hook", - "windows-sys", -] - -[[package]] -name = "async-recursion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "async-task" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" - -[[package]] -name = "async-trait" -version = "0.1.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "atk" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39991bc421ddf72f70159011b323ff49b0f783cc676a7287c59453da2e2531cf" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ad703eb64dc058024f0e57ccfa069e15a413b98dbd50a1a950e743b7f11148" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "atomic-waker" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "log", -] - -[[package]] -name = "brotli" -version = "3.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" - -[[package]] -name = "bytemuck" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -dependencies = [ - "serde", -] - -[[package]] -name = "cairo-rs" -version = "0.16.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3125b15ec28b84c238f6f476c6034016a5f6cc0221cb514ca46c532139fc97d" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "cargo_toml" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" -dependencies = [ - "serde", - "toml", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cfb" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" -dependencies = [ - "byteorder", - "fnv", - "uuid", -] - -[[package]] -name = "cfg-expr" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "winapi", -] - -[[package]] -name = "cocoa" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "core-graphics" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" -dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" -dependencies = [ - "bitflags", - "core-foundation", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cssparser" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa 0.4.8", - "matches", - "phf 0.8.0", - "proc-macro2", - "quote", - "smallvec", - "syn 1.0.109", -] - -[[package]] -name = "cssparser-macros" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" -dependencies = [ - "quote", - "syn 2.0.25", -] - -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.25", -] - -[[package]] -name = "darling_macro" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "deep-link-example" -version = "0.0.0" -dependencies = [ - "serde", - "serde_json", - "tauri", - "tauri-build", - "tauri-plugin-deep-link", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dtoa" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519b83cd10f5f6e969625a409f735182bea5558cd8b64c655806ceaae36f1999" - -[[package]] -name = "dtoa-short" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" -dependencies = [ - "dtoa", -] - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "embed-resource" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7f1e82a60222fc67bfd50d752a9c89da5cce4c39ed39decc84a443b07bbd69a" -dependencies = [ - "cc", - "rustc_version", - "toml", - "vswhom", - "winreg 0.11.0", -] - -[[package]] -name = "embed_plist" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enumflags2" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fdeflate" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset 0.9.0", - "rustc_version", -] - -[[package]] -name = "flate2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gdk" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9cb33da481c6c040404a11f8212d193889e9b435db2c14fd86987f630d3ce1" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.16.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3578c60dee9d029ad86593ed88cb40f35c1b83360e12498d055022385dd9a05" -dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76354f97a913e55b984759a997b693aa7dc71068c9e98bcce51aa167a0a5c5a" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gdkwayland-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4511710212ed3020b61a8622a37aa6f0dd2a84516575da92e9b96928dcbe83ba" -dependencies = [ - "gdk-sys", - "glib-sys", - "gobject-sys", - "libc", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gdkx11-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa2bf8b5b8c414bc5d05e48b271896d0fd3ddb57464a3108438082da61de6af" -dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps", - "x11", -] - -[[package]] -name = "generator" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "windows", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" - -[[package]] -name = "gio" -version = "0.16.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a1c84b4534a290a29160ef5c6eff2a9c95833111472e824fc5cb78b513dd092" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "gio-sys", - "glib", - "libc", - "once_cell", - "pin-project-lite", - "smallvec", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] - -[[package]] -name = "glib" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16aa2475c9debed5a32832cb5ff2af5a3f9e1ab9e69df58eaadc1ab2004d6eba" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib-macros" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1a9325847aa46f1e96ffea37611b9d51fc4827e67f79e7de502a297560a67b" -dependencies = [ - "anyhow", - "heck", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "glib-sys" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65" -dependencies = [ - "libc", - "system-deps", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gobject-sys" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gtk" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d3507d43908c866c805f74c9dd593c0ce7ba5c38e576e41846639cdcd4bee6" -dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b5f8946685d5fe44497007786600c2f368ff6b1e61a16251c89f72a97520a3" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "gtk3-macros" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096eb63c6fedf03bafe65e5924595785eaf1bcb7200dac0f2cbe9c9738f05ad8" -dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "h2" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "html5ever" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" -dependencies = [ - "log", - "mac", - "markup5ever 0.10.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "html5ever" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" -dependencies = [ - "log", - "mac", - "markup5ever 0.11.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.8", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 1.0.8", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ico" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" -dependencies = [ - "byteorder", - "png", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "image" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-rational", - "num-traits", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "infer" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" -dependencies = [ - "cfb", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - -[[package]] -name = "ipnet" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a" - -[[package]] -name = "javascriptcore-rs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcc681b896b083864a4a3c3b3ea196f14ff66b8641a68fde209c6d84434056" -dependencies = [ - "bitflags", - "glib", - "javascriptcore-rs-sys", -] - -[[package]] -name = "javascriptcore-rs-sys" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0983ba5b3ab9a0c0918de02c42dc71f795d6de08092f88a98ce9fdfdee4ba91" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "jni" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658" -dependencies = [ - "serde", - "serde_json", - "thiserror", - "treediff", -] - -[[package]] -name = "kuchiki" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" -dependencies = [ - "cssparser", - "html5ever 0.25.2", - "matches", - "selectors", -] - -[[package]] -name = "kuchikiki" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" -dependencies = [ - "cssparser", - "html5ever 0.26.0", - "indexmap 1.9.3", - "matches", - "selectors", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "line-wrap" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "lock_api" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" - -[[package]] -name = "loom" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "markup5ever" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" -dependencies = [ - "log", - "phf 0.10.1", - "phf_codegen 0.10.0", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", -] - -[[package]] -name = "ndk" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" -dependencies = [ - "bitflags", - "jni-sys", - "ndk-sys", - "num_enum", - "raw-window-handle", - "thiserror", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.4.1+23.1.7779620" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags", - "cfg-if", - "libc", - "memoffset 0.7.1", - "static_assertions", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "object" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "pango" -version = "0.16.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdff66b271861037b89d028656184059e03b0b6ccb36003820be19f7200b1e94" -dependencies = [ - "bitflags", - "gio", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "parking" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.3.5", - "smallvec", - "windows-targets", -] - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", -] - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_macros 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", -] - -[[package]] -name = "phf_codegen" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", -] - -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "phf_macros" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "plist" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" -dependencies = [ - "base64", - "indexmap 1.9.3", - "line-wrap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "png" -version = "0.17.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" -dependencies = [ - "bitflags", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-xml" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.10", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.3.2", - "regex-syntax 0.7.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.7.4", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg 0.10.1", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "rustversion" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" - -[[package]] -name = "ryu" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "selectors" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" -dependencies = [ - "bitflags", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", -] - -[[package]] -name = "semver" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" - -[[package]] -name = "serde" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "serde_json" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c" -dependencies = [ - "itoa 1.0.8", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d89a8107374290037607734c0b73a85db7ed80cae314b3c5791f192a496e731" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "serde_spanned" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa 1.0.8", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02d8aa6e3c385bf084924f660ce2a3a6bd333ba55b35e8590b321f35d88513" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "serde", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc7d5d3932fb12ce722ee5e64dd38c504efba37567f0c402f6ca728c3b8b070" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "serialize-to-javascript" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" -dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", -] - -[[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "servo_arc" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" -dependencies = [ - "nodrop", - "stable_deref_trait", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" - -[[package]] -name = "siphasher" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "soup3" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82bc46048125fefd69d30b32b9d263d6556c9ffe82a7a7df181a86d912da5616" -dependencies = [ - "bitflags", - "futures-channel", - "gio", - "glib", - "libc", - "once_cell", - "soup3-sys", -] - -[[package]] -name = "soup3-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014bbeb1c4cdb30739dc181e8d98b7908f124d9555843afa89b5570aaf4ec62b" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "state" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" -dependencies = [ - "loom", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "swift-rs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e51d6f2b5fff4808614f429f8a7655ac8bcfe218185413f3a60c508482c2d6" -dependencies = [ - "base64", - "serde", - "serde_json", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "system-deps" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3" -dependencies = [ - "cfg-expr", - "heck", - "pkg-config", - "toml", - "version-compare", -] - -[[package]] -name = "tao" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87728a671df8520c274fa9bed48d7384f5a965ef2fc364f01a942f6ff1ae6d2" -dependencies = [ - "bitflags", - "cairo-rs", - "cc", - "cocoa", - "core-foundation", - "core-graphics", - "crossbeam-channel", - "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", - "gdkwayland-sys", - "gdkx11-sys", - "gio", - "glib", - "glib-sys", - "gtk", - "image", - "instant", - "jni", - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "png", - "raw-window-handle", - "scopeguard", - "serde", - "tao-macros", - "unicode-segmentation", - "url", - "uuid", - "windows", - "windows-implement", - "x11-dl", - "zbus", -] - -[[package]] -name = "tao-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "target-lexicon" -version = "0.12.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac" - -[[package]] -name = "tauri" -version = "2.0.0-beta.0" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "anyhow", - "bytes", - "cocoa", - "dirs-next", - "embed_plist", - "futures-util", - "glib", - "glob", - "gtk", - "heck", - "http", - "jni", - "libc", - "log", - "objc", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", - "reqwest", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "state", - "swift-rs", - "tauri-build", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "thiserror", - "tokio", - "url", - "uuid", - "webkit2gtk", - "webview2-com", - "windows", -] - -[[package]] -name = "tauri-build" -version = "2.0.0-beta.0" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "anyhow", - "cargo_toml", - "heck", - "json-patch", - "plist", - "semver", - "serde", - "serde_json", - "swift-rs", - "tauri-utils", - "tauri-winres", - "walkdir", -] - -[[package]] -name = "tauri-codegen" -version = "2.0.0-beta.0" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "base64", - "brotli", - "ico", - "json-patch", - "plist", - "png", - "proc-macro2", - "quote", - "semver", - "serde", - "serde_json", - "sha2", - "tauri-utils", - "thiserror", - "time", - "url", - "uuid", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "2.0.0-beta.0" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 1.0.109", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-plugin-deep-link" -version = "0.0.0" -dependencies = [ - "log", - "serde", - "serde_json", - "tauri", - "tauri-build", - "thiserror", - "url", -] - -[[package]] -name = "tauri-runtime" -version = "0.13.0-alpha.6" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "gtk", - "http", - "http-range", - "jni", - "rand 0.8.5", - "raw-window-handle", - "serde", - "serde_json", - "tauri-utils", - "thiserror", - "url", - "uuid", - "windows", -] - -[[package]] -name = "tauri-runtime-wry" -version = "0.13.0-alpha.6" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "cocoa", - "gtk", - "jni", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", - "tauri-runtime", - "tauri-utils", - "uuid", - "webkit2gtk", - "webview2-com", - "windows", - "wry", -] - -[[package]] -name = "tauri-utils" -version = "2.0.0-beta.0" -source = "git+https://github.com/lucasfernog/tauri?branch=feat/ipc-custom-protocol#46e7d58fc1ec2265324606689e2b528e6b6b739d" -dependencies = [ - "brotli", - "ctor", - "dunce", - "glob", - "heck", - "html5ever 0.26.0", - "infer", - "json-patch", - "kuchikiki", - "memchr", - "phf 0.10.1", - "proc-macro2", - "quote", - "semver", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", - "walkdir", - "windows", -] - -[[package]] -name = "tauri-winres" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" -dependencies = [ - "embed-resource", - "toml", -] - -[[package]] -name = "tempfile" -version = "3.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" -dependencies = [ - "autocfg", - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "thin-slice" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" - -[[package]] -name = "thiserror" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" -dependencies = [ - "itoa 1.0.8", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" - -[[package]] -name = "time-macros" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" -dependencies = [ - "autocfg", - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78" -dependencies = [ - "indexmap 2.0.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "tracing-core" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "treediff" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" -dependencies = [ - "serde_json", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "uds_windows" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" -dependencies = [ - "tempfile", - "winapi", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "url" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "uuid" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be" -dependencies = [ - "getrandom 0.2.10", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version-compare" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "vswhom" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" -dependencies = [ - "libc", - "vswhom-sys", -] - -[[package]] -name = "vswhom-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.25", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "wasm-streams" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webkit2gtk" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ba4cce9085e0fb02575cfd45c328740dde78253cba516b1e8be2ca0f57bd8bf" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk", - "gdk-sys", - "gio", - "gio-sys", - "glib", - "glib-sys", - "gobject-sys", - "gtk", - "gtk-sys", - "javascriptcore-rs", - "libc", - "once_cell", - "soup3", - "webkit2gtk-sys", -] - -[[package]] -name = "webkit2gtk-sys" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4489eb24e8cf0a3d0555fd3a8f7adec2a5ece34c1e7b7c9a62da7822fd40a59" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "javascriptcore-rs-sys", - "libc", - "pkg-config", - "soup3-sys", - "system-deps", -] - -[[package]] -name = "webview2-com" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e563ffe8e84d42e43ffacbace8780c0244fc8910346f334613559d92e203ad" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys", - "windows", - "windows-implement", - "windows-interface", -] - -[[package]] -name = "webview2-com-macros" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "webview2-com-sys" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d39576804304cf9ead192467ef47f7859a1a12fec3bd459d5ba34b8cd65ed5" -dependencies = [ - "regex", - "serde", - "serde_json", - "thiserror", - "windows", - "windows-bindgen", - "windows-metadata", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-targets", -] - -[[package]] -name = "windows-bindgen" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe21a77bc54b7312dbd66f041605e098990c98be48cd52967b85b5e60e75ae6" -dependencies = [ - "windows-metadata", - "windows-tokens", -] - -[[package]] -name = "windows-implement" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "windows-interface" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "windows-metadata" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0e5f0e2cc372bb6addbfff9a8add712155cd743df9c15f6ab000f31432d" - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.48.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows-tokens" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34c9a3b28cb41db7385546f7f9a8179348dffc89923dde66857b1ba5312f6b4" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winnow" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a2094c43cc94775293eaa0e499fbc30048a6d824ac82c0351a8c0bf9112529" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "winreg" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "wry" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "430d086d4626265e9427fe2908a06fb2e10ea2ff37d4a711eb9461b6ea3511dd" -dependencies = [ - "base64", - "block", - "cocoa", - "core-graphics", - "crossbeam-channel", - "dunce", - "gdk", - "gio", - "glib", - "gtk", - "html5ever 0.25.2", - "http", - "javascriptcore-rs", - "kuchiki", - "libc", - "log", - "objc", - "objc_id", - "once_cell", - "serde", - "serde_json", - "sha2", - "soup3", - "tao", - "thiserror", - "url", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows", - "windows-implement", -] - -[[package]] -name = "x11" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "xdg-home" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" -dependencies = [ - "nix", - "winapi", -] - -[[package]] -name = "zbus" -version = "3.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" -dependencies = [ - "async-broadcast", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "byteorder", - "derivative", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "winapi", - "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "3.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "regex", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - -[[package]] -name = "zvariant" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 4deee4d3..5561df0d 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -18,4 +18,4 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } tiny_http = "0.12" -http = "0.2" +http = "1" diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 4cced807..538907b1 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -20,7 +20,7 @@ serde = { workspace = true } serde_json = { workspace = true } tauri = { workspace = true } serde_repr = "0.1" -byte-unit = "4.0" +byte-unit = "5" log = { workspace = true, features = [ "kv_unstable" ] } time = { version = "0.3", features = [ "formatting", "local-offset" ] } fern = "0.6" diff --git a/plugins/single-instance/examples/vanilla/.gitignore b/plugins/single-instance/examples/vanilla/.gitignore index c2658d7d..b3f41c3f 100644 --- a/plugins/single-instance/examples/vanilla/.gitignore +++ b/plugins/single-instance/examples/vanilla/.gitignore @@ -1 +1,3 @@ node_modules/ +dist/** +!dist/.gitkeep \ No newline at end of file diff --git a/plugins/single-instance/examples/vanilla/dist/.gitkeep b/plugins/single-instance/examples/vanilla/dist/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/plugins/sql/README.md b/plugins/sql/README.md index 0789d77f..ff62d4f8 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -147,7 +147,6 @@ fn main() { ]; tauri::Builder::default() - .plugin(tauri_plugin_shell::init()) .plugin( tauri_plugin_sql::Builder::default() .add_migrations("sqlite:mydatabase.db", migrations) diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 1d1ec4d8..c45fe858 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -22,10 +22,11 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } +http = "1" rand = "0.8" futures-util = "0.3" tokio = { version = "1", features = [ "net", "sync" ] } -tokio-tungstenite = { version = "0.20" } +tokio-tungstenite = { version = "0.21" } [features] native-tls = [ "tokio-tungstenite/native-tls" ] diff --git a/plugins/websocket/examples/svelte-app/.gitignore b/plugins/websocket/examples/svelte-app/.gitignore deleted file mode 100644 index 6635cf55..00000000 --- a/plugins/websocket/examples/svelte-app/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.DS_Store -node_modules -/build -/.svelte-kit -/package -.env -.env.* -!.env.example -vite.config.js.timestamp-* -vite.config.ts.timestamp-* diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json deleted file mode 100644 index 0e8e7983..00000000 --- a/plugins/websocket/examples/svelte-app/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "svelte-app", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "tauri": "tauri" - }, - "devDependencies": { - "@sveltejs/adapter-auto": "2.1.1", - "@sveltejs/kit": "1.27.7", - "@tauri-apps/cli": "2.0.0-beta.0", - "svelte": "4.2.8", - "svelte-check": "3.6.2", - "typescript": "5.3.2", - "vite": "5.0.12" - }, - "dependencies": { - "@tauri-apps/plugin-websocket": "link:..\\.." - }, - "type": "module" -} diff --git a/plugins/websocket/examples/svelte-app/src/app.d.ts b/plugins/websocket/examples/svelte-app/src/app.d.ts deleted file mode 100644 index caf34f1d..00000000 --- a/plugins/websocket/examples/svelte-app/src/app.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -// See https://kit.svelte.dev/docs/types#app -// for information about these interfaces -// and what to do when importing types -declare namespace App { - // interface Error {} - // interface Locals {} - // interface PageData {} - // interface Platform {} -} diff --git a/plugins/websocket/examples/svelte-app/src/app.html b/plugins/websocket/examples/svelte-app/src/app.html deleted file mode 100644 index 73cf3cd3..00000000 --- a/plugins/websocket/examples/svelte-app/src/app.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/plugins/websocket/examples/svelte-app/src/routes/+page.svelte b/plugins/websocket/examples/svelte-app/src/routes/+page.svelte deleted file mode 100644 index d41d6389..00000000 --- a/plugins/websocket/examples/svelte-app/src/routes/+page.svelte +++ /dev/null @@ -1,44 +0,0 @@ - - -
- - - -
-
{@html response}
diff --git a/plugins/websocket/examples/svelte-app/static/favicon.png b/plugins/websocket/examples/svelte-app/static/favicon.png deleted file mode 100644 index 825b9e65..00000000 Binary files a/plugins/websocket/examples/svelte-app/static/favicon.png and /dev/null differ diff --git a/plugins/websocket/examples/svelte-app/svelte.config.js b/plugins/websocket/examples/svelte-app/svelte.config.js deleted file mode 100644 index 3aae82d7..00000000 --- a/plugins/websocket/examples/svelte-app/svelte.config.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -import adapter from "@sveltejs/adapter-static"; -import { vitePreprocess } from "@sveltejs/kit/vite"; - -/** @type {import('@sveltejs/kit').Config} */ -const config = { - // Consult https://kit.svelte.dev/docs/integrations#preprocessors - // for more information about preprocessors - preprocess: vitePreprocess(), - - kit: { - adapter: adapter(), - }, -}; - -export default config; diff --git a/plugins/websocket/examples/svelte-app/tsconfig.json b/plugins/websocket/examples/svelte-app/tsconfig.json deleted file mode 100644 index 794b95b6..00000000 --- a/plugins/websocket/examples/svelte-app/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true - } - // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias - // - // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes - // from the referenced tsconfig.json - TypeScript does not merge them in -} diff --git a/plugins/websocket/examples/svelte-app/vite.config.ts b/plugins/websocket/examples/svelte-app/vite.config.ts deleted file mode 100644 index 2b08f961..00000000 --- a/plugins/websocket/examples/svelte-app/vite.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -import { sveltekit } from "@sveltejs/kit/vite"; -import type { UserConfig } from "vite"; - -const config: UserConfig = { - plugins: [sveltekit()], -}; - -export default config; diff --git a/plugins/websocket/examples/tauri-app/.gitignore b/plugins/websocket/examples/tauri-app/.gitignore new file mode 100644 index 00000000..e030fa6c --- /dev/null +++ b/plugins/websocket/examples/tauri-app/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist/** +!dist/.gitkeep +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/plugins/websocket/examples/tauri-app/dist/.gitkeep b/plugins/websocket/examples/tauri-app/dist/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/plugins/websocket/examples/tauri-app/index.html b/plugins/websocket/examples/tauri-app/index.html new file mode 100644 index 00000000..3f4c7d9a --- /dev/null +++ b/plugins/websocket/examples/tauri-app/index.html @@ -0,0 +1,20 @@ + + + + + + + WebSocket Plugin Example + + +
+
+ + + +
+
+
+ + + diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json new file mode 100644 index 00000000..30b30705 --- /dev/null +++ b/plugins/websocket/examples/tauri-app/package.json @@ -0,0 +1,19 @@ +{ + "name": "tauri-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@tauri-apps/cli": "1.5.9", + "typescript": "^5.3.3", + "vite": "^5.0.12" + }, + "dependencies": { + "tauri-plugin-websocket-api": "link:..\\.." + } +} diff --git a/plugins/websocket/examples/tauri-app/public/vite.svg b/plugins/websocket/examples/tauri-app/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/plugins/websocket/examples/tauri-app/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugins/websocket/examples/svelte-app/src-tauri/.gitignore b/plugins/websocket/examples/tauri-app/src-tauri/.gitignore similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/.gitignore rename to plugins/websocket/examples/tauri-app/src-tauri/.gitignore diff --git a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml similarity index 94% rename from plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml rename to plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index 86ea4c54..fb3b862c 100644 --- a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -11,7 +11,7 @@ tauri = { workspace = true } tokio = { version = "1", features = ["net"] } futures-util = "0.3" tauri-plugin-websocket = { path = "../../../" } -tokio-tungstenite = "0.20" +tokio-tungstenite = "0.21" [build-dependencies] tauri-build = { workspace = true } diff --git a/plugins/websocket/examples/svelte-app/src-tauri/build.rs b/plugins/websocket/examples/tauri-app/src-tauri/build.rs similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/build.rs rename to plugins/websocket/examples/tauri-app/src-tauri/build.rs diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/128x128.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/128x128.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/128x128.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/128x128.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/128x128@2x.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/128x128@2x.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/128x128@2x.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/128x128@2x.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/32x32.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/32x32.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/32x32.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/32x32.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square107x107Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square107x107Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square107x107Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square107x107Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square142x142Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square142x142Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square142x142Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square142x142Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square150x150Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square150x150Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square150x150Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square150x150Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square284x284Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square284x284Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square284x284Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square284x284Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square30x30Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square30x30Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square30x30Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square30x30Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square310x310Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square310x310Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square310x310Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square310x310Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square44x44Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square44x44Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square44x44Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square44x44Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square71x71Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square71x71Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square71x71Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square71x71Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square89x89Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square89x89Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square89x89Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square89x89Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/StoreLogo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/StoreLogo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/StoreLogo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/StoreLogo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.icns b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.icns similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.icns rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.icns diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.ico b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.ico similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.ico rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.ico diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/rustfmt.toml b/plugins/websocket/examples/tauri-app/src-tauri/rustfmt.toml similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/rustfmt.toml rename to plugins/websocket/examples/tauri-app/src-tauri/rustfmt.toml diff --git a/plugins/websocket/examples/svelte-app/src-tauri/src/main.rs b/plugins/websocket/examples/tauri-app/src-tauri/src/main.rs similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/src/main.rs rename to plugins/websocket/examples/tauri-app/src-tauri/src/main.rs diff --git a/plugins/websocket/examples/svelte-app/src-tauri/tauri.conf.json b/plugins/websocket/examples/tauri-app/src-tauri/tauri.conf.json similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/tauri.conf.json rename to plugins/websocket/examples/tauri-app/src-tauri/tauri.conf.json diff --git a/plugins/websocket/examples/tauri-app/src/main.ts b/plugins/websocket/examples/tauri-app/src/main.ts new file mode 100644 index 00000000..731fd60d --- /dev/null +++ b/plugins/websocket/examples/tauri-app/src/main.ts @@ -0,0 +1,54 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +import WebSocket from "tauri-plugin-websocket-api"; +import "./style.css"; + +let ws: WebSocket; + +document.addEventListener("DOMContentLoaded", async () => { + document.querySelector("#send")?.addEventListener("click", send); + document.querySelector("#disconnect")?.addEventListener("click", disconnect); + await connect(); +}); + +function _updateResponse(returnValue: unknown) { + const msg = document.createElement("p"); + msg.textContent = + typeof returnValue === "string" ? returnValue : JSON.stringify(returnValue); + document.querySelector("#response-container")?.appendChild(msg); +} + +async function connect() { + try { + ws = await WebSocket.connect("ws://127.0.0.1:8080").then((r) => { + _updateResponse("Connected"); + return r; + }); + } catch (e) { + _updateResponse(e); + } + ws.addListener(_updateResponse); +} + +function send() { + ws.send(document.querySelector("#msg-input")?.textContent || "") + .then(() => _updateResponse("Message sent")) + .catch(_updateResponse); +} + +function disconnect() { + ws.disconnect() + .then(() => _updateResponse("Disconnected")) + .catch(_updateResponse); +} + +document.querySelector("#app")!.innerHTML = ` +
+ + + +
+
+`; diff --git a/plugins/websocket/examples/svelte-app/static/global.css b/plugins/websocket/examples/tauri-app/src/style.css similarity index 97% rename from plugins/websocket/examples/svelte-app/static/global.css rename to plugins/websocket/examples/tauri-app/src/style.css index d8d4fb96..21d7637f 100644 --- a/plugins/websocket/examples/svelte-app/static/global.css +++ b/plugins/websocket/examples/tauri-app/src/style.css @@ -66,3 +66,7 @@ button:not(:disabled):active { button:focus { border-color: #666; } + +p { + margin: 3px 0; +} diff --git a/plugins/websocket/examples/tauri-app/src/typescript.svg b/plugins/websocket/examples/tauri-app/src/typescript.svg new file mode 100644 index 00000000..d91c910c --- /dev/null +++ b/plugins/websocket/examples/tauri-app/src/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugins/websocket/examples/svelte-app/src/routes/+layout.ts b/plugins/websocket/examples/tauri-app/src/vite-env.d.ts similarity index 71% rename from plugins/websocket/examples/svelte-app/src/routes/+layout.ts rename to plugins/websocket/examples/tauri-app/src/vite-env.d.ts index 050af12d..044b89cc 100644 --- a/plugins/websocket/examples/svelte-app/src/routes/+layout.ts +++ b/plugins/websocket/examples/tauri-app/src/vite-env.d.ts @@ -2,5 +2,4 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -export const prerender = true; -export const ssr = false; +/// diff --git a/plugins/websocket/examples/tauri-app/tsconfig.json b/plugins/websocket/examples/tauri-app/tsconfig.json new file mode 100644 index 00000000..75abdef2 --- /dev/null +++ b/plugins/websocket/examples/tauri-app/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/plugins/websocket/src/lib.rs b/plugins/websocket/src/lib.rs index ac2d71fd..f4a95b8e 100644 --- a/plugins/websocket/src/lib.rs +++ b/plugins/websocket/src/lib.rs @@ -12,6 +12,7 @@ )] use futures_util::{stream::SplitSink, SinkExt, StreamExt}; +use http::header::{HeaderName, HeaderValue}; use serde::{ser::Serializer, Deserialize, Serialize}; use tauri::{ ipc::Channel, @@ -22,6 +23,7 @@ use tokio::{net::TcpStream, sync::Mutex}; use tokio_tungstenite::{ connect_async_with_config, tungstenite::{ + client::IntoClientRequest, protocol::{CloseFrame as ProtocolCloseFrame, WebSocketConfig}, Message, }, @@ -30,8 +32,6 @@ use tokio_tungstenite::{ use std::collections::HashMap; use std::str::FromStr; -use tauri::http::header::{HeaderName, HeaderValue}; -use tokio_tungstenite::tungstenite::client::IntoClientRequest; type Id = u32; type WebSocket = WebSocketStream>; diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index fd7c26e0..ed069e54 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -4,6 +4,11 @@ - [`d198c01`](https://github.com/tauri-apps/plugins-workspace/commit/d198c014863ee260cb0de88a14b7fc4356ef7474)([#862](https://github.com/tauri-apps/plugins-workspace/pull/862)) Update to tauri beta. +- [`14f59615`](https://github.com/tauri-apps/plugins-workspace/commit/14f5961569c7d759d8d6d836352c787484594bd5) Address a couple of issues with restoring positions: + + - Fix restoring window positions correctly when the top-left corner of the window was outside of the monitor. + - Fix restore maximization state only maximized on main monitor. + ## \[2.0.0-alpha.5] - [`387c2f9`](https://github.com/tauri-apps/plugins-workspace/commit/387c2f9e0ce4c75c07ffa3fd76391a25b58f5daf)([#802](https://github.com/tauri-apps/plugins-workspace/pull/802)) Update to @tauri-apps/api v2.0.0-alpha.13. diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index 2171e2a3..16ad75e5 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -67,6 +67,11 @@ struct WindowState { height: f64, x: i32, y: i32, + // prev_x and prev_y are used to store position + // before maximization happened, because maximization + // will set x and y to the top-left corner of the monitor + prev_x: i32, + prev_y: i32, maximized: bool, visible: bool, decorated: bool, @@ -80,6 +85,8 @@ impl Default for WindowState { height: Default::default(), x: Default::default(), y: Default::default(), + prev_x: Default::default(), + prev_y: Default::default(), maximized: Default::default(), visible: true, decorated: true, @@ -149,13 +156,23 @@ impl WindowExt for Window { } if flags.contains(StateFlags::POSITION) { + let position = (state.x, state.y).into(); + let size = (state.width, state.height).into(); // restore position to saved value if saved monitor exists // otherwise, let the OS decide where to place the window for m in self.available_monitors()? { - if m.contains((state.x, state.y).into()) { + if m.intersects(position, size) { self.set_position(PhysicalPosition { - x: state.x, - y: state.y, + x: if state.maximized { + state.prev_x + } else { + state.x + }, + y: if state.maximized { + state.prev_y + } else { + state.y + }, })?; } } @@ -251,22 +268,17 @@ impl WindowExtInternal for Window { .unwrap_or(1.); let size = self.inner_size()?.to_logical(scale_factor); - // It doesn't make sense to save a self with 0 height or width + // It doesn't make sense to save a window with 0 height or width if size.width > 0. && size.height > 0. && !is_maximized { state.width = size.width; state.height = size.height; } } - if flags.contains(StateFlags::POSITION) { + if flags.contains(StateFlags::POSITION) && !is_maximized { let position = self.outer_position()?; - if let Ok(Some(monitor)) = self.current_monitor() { - // save only window positions that are inside the current monitor - if monitor.contains(position) && !is_maximized { - state.x = position.x; - state.y = position.y; - } - } + state.x = position.x; + state.y = position.y; } Ok(()) @@ -281,6 +293,10 @@ pub struct Builder { } impl Builder { + pub fn new() -> Self { + Self::default() + } + /// Sets the state flags to control what state gets restored and saved. pub fn with_state_flags(mut self, flags: StateFlags) -> Self { self.state_flags = flags; @@ -354,13 +370,25 @@ impl Builder { .or_insert_with(WindowState::default); } - window.on_window_event(move |e| { - if let WindowEvent::CloseRequested { .. } = e { + window.on_window_event(move |e| match e { + WindowEvent::CloseRequested { .. } => { let mut c = cache.lock().unwrap(); if let Some(state) = c.get_mut(&label) { let _ = window_clone.update_state(state, flags); } } + + WindowEvent::Moved(position) if flags.contains(StateFlags::POSITION) => { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.prev_x = state.x; + state.prev_y = state.y; + + state.x = position.x; + state.y = position.y; + } + } + _ => {} }); }) .on_event(move |app, event| { @@ -373,17 +401,31 @@ impl Builder { } trait MonitorExt { - fn contains(&self, position: PhysicalPosition) -> bool; + fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool; } impl MonitorExt for Monitor { - fn contains(&self, position: PhysicalPosition) -> bool { + fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool { + let size = size.to_physical::(self.scale_factor()); + let PhysicalPosition { x, y } = *self.position(); let PhysicalSize { width, height } = *self.size(); - x < position.x as _ - && position.x < (x + width as i32) - && y < position.y as _ - && position.y < (y + height as i32) + let left = x; + let right = x + width as i32; + let top = y; + let bottom = y + height as i32; + + [ + (position.x, position.y), + (position.x + size.width as i32, position.y), + (position.x, position.y + size.height as i32), + ( + position.x + size.width as i32, + position.y + size.height as i32, + ), + ] + .into_iter() + .any(|(x, y)| x >= left && x < right && y >= top && y < bottom) } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56d9a7d3..44339320 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,52 +14,52 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.6.1) + version: 15.2.3(rollup@4.9.6) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.6.1) + version: 0.4.4(rollup@4.9.6) '@rollup/plugin-typescript': - specifier: 11.1.5 - version: 11.1.5(rollup@4.6.1)(typescript@5.3.2) + specifier: 11.1.6 + version: 11.1.6(rollup@4.9.6)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.13.2 - version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) + specifier: 6.20.0 + version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.13.2 - version: 6.13.2(eslint@8.55.0)(typescript@5.3.2) + specifier: 6.20.0 + version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) covector: specifier: ^0.10.2 version: 0.10.2(mocha@10.2.0) eslint: - specifier: 8.55.0 - version: 8.55.0 + specifier: 8.56.0 + version: 8.56.0 eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@8.55.0) + version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: - specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) + specifier: 43.0.1 + version: 43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: - specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) + specifier: 2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) eslint-plugin-n: - specifier: 16.3.1 - version: 16.3.1(eslint@8.55.0) + specifier: 16.6.2 + version: 16.6.2(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 - version: 6.1.1(eslint@8.55.0) + version: 6.1.1(eslint@8.56.0) eslint-plugin-security: - specifier: 1.7.1 - version: 1.7.1 + specifier: 2.1.0 + version: 2.1.0 prettier: - specifier: 3.1.0 - version: 3.1.0 + specifier: 3.2.2 + version: 3.2.2 rollup: - specifier: 4.6.1 - version: 4.6.1 + specifier: 4.9.6 + version: 4.9.6 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: 5.3.3 + version: 5.3.3 examples/api: dependencies: @@ -135,7 +135,7 @@ importers: version: 4.2.8 unocss: specifier: ^0.58.0 - version: 0.58.0(postcss@8.4.32)(rollup@4.6.1)(vite@5.0.12) + version: 0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12) vite: specifier: ^5.0.12 version: 5.0.12 @@ -320,32 +320,20 @@ importers: specifier: 2.0.0-beta.0 version: 2.0.0-beta.0 - plugins/websocket/examples/svelte-app: + plugins/websocket/examples/tauri-app: dependencies: - '@tauri-apps/plugin-websocket': + tauri-plugin-websocket-api: specifier: link:..\.. version: link:../.. devDependencies: - '@sveltejs/adapter-auto': - specifier: 2.1.1 - version: 2.1.1(@sveltejs/kit@1.27.7) - '@sveltejs/kit': - specifier: 1.27.7 - version: 1.27.7(svelte@4.2.8)(vite@5.0.12) '@tauri-apps/cli': - specifier: 2.0.0-beta.0 - version: 2.0.0-beta.0 - svelte: - specifier: 4.2.8 - version: 4.2.8 - svelte-check: - specifier: 3.6.2 - version: 3.6.2(svelte@4.2.8) + specifier: 1.5.9 + version: 1.5.9 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: ^5.3.3 + version: 5.3.3 vite: - specifier: 5.0.12 + specifier: ^5.0.12 version: 5.0.12 plugins/window-state: @@ -1038,13 +1026,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1070,16 +1058,11 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - dev: true - /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} @@ -1190,7 +1173,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.6): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1199,16 +1182,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.6.1 + rollup: 4.9.6 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.6.1): + /@rollup/plugin-terser@0.4.4(rollup@4.9.6): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1217,14 +1200,14 @@ packages: rollup: optional: true dependencies: - rollup: 4.6.1 + rollup: 4.9.6 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.2): - resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} + /@rollup/plugin-typescript@11.1.6(rollup@4.9.6)(typescript@5.3.3): + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.14.0||^3.0.0||^4.0.0 @@ -1236,13 +1219,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) resolve: 1.22.8 - rollup: 4.6.1 - typescript: 5.3.2 + rollup: 4.9.6 + typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.6.1): + /@rollup/pluginutils@5.1.0(rollup@4.9.6): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1254,7 +1237,7 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.6.1 + rollup: 4.9.6 dev: true /@rollup/rollup-android-arm-eabi@4.6.1: @@ -1265,6 +1248,14 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm-eabi@4.9.6: + resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-android-arm64@4.6.1: resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} cpu: [arm64] @@ -1273,6 +1264,14 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm64@4.9.6: + resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-arm64@4.6.1: resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} cpu: [arm64] @@ -1281,6 +1280,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-arm64@4.9.6: + resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-x64@4.6.1: resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} cpu: [x64] @@ -1289,6 +1296,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-x64@4.9.6: + resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.6.1: resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} cpu: [arm] @@ -1297,6 +1312,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-gnu@4.6.1: resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} cpu: [arm64] @@ -1305,6 +1328,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-musl@4.6.1: resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} cpu: [arm64] @@ -1313,6 +1344,22 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-gnu@4.6.1: resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} cpu: [x64] @@ -1321,6 +1368,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-musl@4.6.1: resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} cpu: [x64] @@ -1329,6 +1384,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-arm64-msvc@4.6.1: resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} cpu: [arm64] @@ -1337,6 +1400,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-ia32-msvc@4.6.1: resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} cpu: [ia32] @@ -1345,6 +1416,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-x64-msvc@4.6.1: resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} cpu: [x64] @@ -1353,58 +1432,13 @@ packages: dev: true optional: true - /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.7): - resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==} - peerDependencies: - '@sveltejs/kit': ^1.0.0 - dependencies: - '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.12) - import-meta-resolve: 4.0.0 - dev: true - - /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.12): - resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} - engines: {node: ^16.14 || >=18} - hasBin: true + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + cpu: [x64] + os: [win32] requiresBuild: true - peerDependencies: - svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@5.0.12) - '@types/cookie': 0.5.4 - cookie: 0.5.0 - devalue: 4.3.2 - esm-env: 1.0.0 - kleur: 4.1.5 - magic-string: 0.30.5 - mrmime: 1.0.1 - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.3 - svelte: 4.2.8 - tiny-glob: 0.2.9 - undici: 5.26.5 - vite: 5.0.12 - transitivePeerDependencies: - - supports-color - dev: true - - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@5.0.12): - resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^2.2.0 - svelte: ^3.54.0 || ^4.0.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4(supports-color@8.1.1) - svelte: 4.2.8 - vite: 5.0.12 - transitivePeerDependencies: - - supports-color dev: true + optional: true /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.12): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} @@ -1422,26 +1456,6 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.8)(vite@5.0.12): - resolution: {integrity: sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4(supports-color@8.1.1) - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.5 - svelte: 4.2.8 - svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.0.12 - vitefu: 0.2.5(vite@5.0.12) - transitivePeerDependencies: - - supports-color - dev: true - /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.0.12): resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==} engines: {node: ^18.0.0 || >=20} @@ -1467,6 +1481,15 @@ packages: engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false + /@tauri-apps/cli-darwin-arm64@1.5.9: + resolution: {integrity: sha512-7C2Jf8f0gzv778mLYb7Eszqqv1bm9Wzews81MRTqKrUIcC+eZEtDXLex+JaEkEzFEUrgIafdOvMBVEavF030IA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.0: resolution: {integrity: sha512-ncLUmkILngH/tG2lRpksT1N6GYbhmck0EaYdd6PTQQycMedP4ZwNXV+JnT3w/YD8JTQUmkcQnPDQtSUxdcPMWQ==} engines: {node: '>= 10'} @@ -1476,6 +1499,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-darwin-x64@1.5.9: + resolution: {integrity: sha512-LHKytpkofPYgH8RShWvwDa3hD1ws131x7g7zNasJPfOiCWLqYVQFUuQVmjEUt8+dpHe/P/err5h4z+YZru2d0A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-darwin-x64@2.0.0-beta.0: resolution: {integrity: sha512-O9PATRKiyLoYBfk5/D9uwWk7ceHyH9/M7nuq5rDtWsofe9Q1QrPGjEe+cTuFXlabhFeoXrsWHhunp09D3G2NrQ==} engines: {node: '>= 10'} @@ -1485,6 +1517,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.9: + resolution: {integrity: sha512-teGK20IYKx+dVn8wFq/Lg57Q9ce7foq1KHSfyHi464LVt1T0V1rsmULSgZpQPPj/NYPF5BG78PcWYv64yH86jw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.0: resolution: {integrity: sha512-KEkCXaGopy7JWVwFySeacIBHoiKeBpmRcXg8MLSHfnjFttByZ38yY8A+1b1bzJqfK3C9jSRMdUvmIG/gFIgxIw==} engines: {node: '>= 10'} @@ -1494,6 +1535,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm64-gnu@1.5.9: + resolution: {integrity: sha512-onJ/DW5Crw38qVx+wquY4uBbfCxVhzhdJmlCYqnYyXsZZmSiPUfSyhV58y+5TYB0q1hG8eYdB5x8VAwzByhGzw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.0: resolution: {integrity: sha512-UV9LJIQXTAdvusRCYL+6UyDwS1wGTuBQviKBJ/37+5LX8q7nbsjOYcrR8JTs78UwzHinFWFXsOpBbKgYEuh3ew==} engines: {node: '>= 10'} @@ -1503,6 +1553,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm64-musl@1.5.9: + resolution: {integrity: sha512-23AYoLD3acakLp9NtheKQDJl8F66eTOflxoPzdJNRy13hUSxb+W9qpz4rRA+CIzkjICFvO2i3UWjeV9QwDVpsQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.0: resolution: {integrity: sha512-qosHNs/HDIV0pIX9ywNH0B9ARQazfcIiPpWbDH5kFDQufXTeSDLcEGlIW3HoqpkoWUzfDr6xDhG5vnCGT9gRsw==} engines: {node: '>= 10'} @@ -1512,6 +1571,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-x64-gnu@1.5.9: + resolution: {integrity: sha512-9PQA1rE7gh41W2ylyKd5qOGOds55ymaYPml9KOpM0g+cxmCXa+8Wf9K5NKvACnJldJJ6cekWzIyB4eN6o5T+yQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.0: resolution: {integrity: sha512-i4rK0sUmTuFoz5d5ItQUpyy98F0I6A0shVAx6Y5NNSNiMbUNuY8XuZ9zQ2Bbs/qX2tsxJa3n8l4E1e05EwrRxQ==} engines: {node: '>= 10'} @@ -1521,6 +1589,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-x64-musl@1.5.9: + resolution: {integrity: sha512-5hdbNFeDsrJ/pXZ4cSQV4bJwUXPPxXxN3/pAtNUqIph7q+vLcBXOXIMoS64iuyaluJC59lhEwlWZFz+EPv0Hqg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.0: resolution: {integrity: sha512-j9nKnT8/F76yc0zudGzuGAnFMArJU3NSkGWJOp/LcxqA+jJKDUnC/t7jEQdDUoUV1Te5gv3FVUso4L8I6arh4A==} engines: {node: '>= 10'} @@ -1530,6 +1607,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-arm64-msvc@1.5.9: + resolution: {integrity: sha512-O18JufjSB3hSJYu5WWByONouGeX7DraLAtXLErsG1r/VS3zHd/zyuzycrVUaObNXk5bfGlIP0Ypt+RvZJILN2w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.0: resolution: {integrity: sha512-nMjFg5Q+yGS0wk//7QvJUVBw6mGpT/HirtCt2J6XGTKOHBxr/M/oYFqYa4m351IW4sjz4PcQVvIpOOvljihDvQ==} engines: {node: '>= 10'} @@ -1539,6 +1625,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-ia32-msvc@1.5.9: + resolution: {integrity: sha512-FQxtxTZu0JVBihfd/lmpxo7jyMOesjWQehfyVUqtgMfm5+Pvvw0Y+ZioeDi1TZkFVrT3QDYy8R4LqDLSZVMQRA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.0: resolution: {integrity: sha512-uthUiat0dXHvHLY6zQQzo552ToUaIVd9XPs0xfUktfHA7gUmF1trLgAF1be+N4A3wh6r5POqPzvy2L8NOt/Tyg==} engines: {node: '>= 10'} @@ -1548,6 +1643,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-x64-msvc@1.5.9: + resolution: {integrity: sha512-EeI1+L518cIBLKw0qUFwnLIySBeSmPQjPLIlNwSukHSro4tAQPHycEVGgKrdToiCWgaZJBA0e5aRSds0Du2TWg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.0: resolution: {integrity: sha512-4EK3q5MA/bXniIeDbormaudOaoeJc3fggFZ0+RQ2zD9iobNCjaqmaZd6A31nxgooz7HBzrub7Fn7dlF7H/E4Xw==} engines: {node: '>= 10'} @@ -1557,6 +1661,23 @@ packages: dev: true optional: true + /@tauri-apps/cli@1.5.9: + resolution: {integrity: sha512-knSt/9AvCTeyfC6wkyeouF9hBW/0Mzuw+5vBKEvzaGPQsfFJo1ZCp5FkdiZpGBBfnm09BhugasGRTGofzatfqQ==} + engines: {node: '>= 10'} + hasBin: true + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 1.5.9 + '@tauri-apps/cli-darwin-x64': 1.5.9 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.9 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.9 + '@tauri-apps/cli-linux-arm64-musl': 1.5.9 + '@tauri-apps/cli-linux-x64-gnu': 1.5.9 + '@tauri-apps/cli-linux-x64-musl': 1.5.9 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.9 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.9 + '@tauri-apps/cli-win32-x64-msvc': 1.5.9 + dev: true + /@tauri-apps/cli@2.0.0-beta.0: resolution: {integrity: sha512-Mx/dyo0ZV6zhgxylH7DrObct1qtQFVQrYpAvtYe5Z/y3iLt49Y2loHCGy0r2ksAn+TQzqgtcIhXbgOCir8Vx+A==} engines: {node: '>= 10'} @@ -1578,10 +1699,6 @@ packages: resolution: {integrity: sha512-NJV/pdgJObDlDWi5+MTHZ2qyNvdL0dlHqQ72nzQYXWbW1LHMPXgCJYl0pLqL1XxxLtxtInYbtVCGVAcwhGxdkw==} dev: true - /@types/cookie@0.5.4: - resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} - dev: true - /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -1599,10 +1716,6 @@ packages: '@types/unist': 2.0.10 dev: true - /@types/pug@2.0.10: - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - dev: true - /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true @@ -1615,8 +1728,8 @@ packages: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true - /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1627,25 +1740,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} + /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1654,27 +1767,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 - typescript: 5.3.2 + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.13.2: - resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} + /@typescript-eslint/scope-manager@6.20.0: + resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 dev: true - /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} + /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1683,23 +1796,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.55.0 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.13.2: - resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} + /@typescript-eslint/types@6.20.0: + resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.2): - resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): + resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1707,42 +1820,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} + /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.13.2: - resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} + /@typescript-eslint/visitor-keys@6.20.0: + resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/types': 6.20.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1750,7 +1864,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@unocss/astro@0.58.0(rollup@4.6.1)(vite@5.0.12): + /@unocss/astro@0.58.0(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-df+tEFO5eKXjQOwSWQhS9IdjD0sfLHLtn8U09sEKR2Nmh5CvpwyBxmvLQgOCilPou7ehmyKfsyGRLZg7IMp+Ew==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1760,19 +1874,19 @@ packages: dependencies: '@unocss/core': 0.58.0 '@unocss/reset': 0.58.0 - '@unocss/vite': 0.58.0(rollup@4.6.1)(vite@5.0.12) + '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - rollup dev: true - /@unocss/cli@0.58.0(rollup@4.6.1): + /@unocss/cli@0.58.0(rollup@4.9.6): resolution: {integrity: sha512-rhsrDBxAVueygMcAbMkbuvsHbBL2rG6N96LllYwHn16FLgOE3Sf4JW1/LlNjQje3BtwMMtbSCCAeu2SryFhzbw==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/preset-uno': 0.58.0 @@ -1948,13 +2062,13 @@ packages: '@unocss/core': 0.58.0 dev: true - /@unocss/vite@0.58.0(rollup@4.6.1)(vite@5.0.12): + /@unocss/vite@0.58.0(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-OCUOLMSOBEtXOEyBbAvMI3/xdR175BWRzmvV9Wc34ANZclEvCdVH8+WU725ibjY4VT0gVIuX68b13fhXdHV41A==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/inspector': 0.58.0 @@ -2183,10 +2297,6 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -2403,11 +2513,6 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: true - /covector@0.10.2(mocha@10.2.0): resolution: {integrity: sha512-Nbz2x5cnS7F0fTT/raNKo0UYbI6rjaDoCrAJNoOpsSHdztnlFi7Bb6lU6kOBEeEH1zHVJk5F3ChBs0VNAuf5mg==} hasBin: true @@ -2536,15 +2641,6 @@ packages: resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} dev: true - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - - /devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - dev: true - /diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} @@ -2667,10 +2763,6 @@ packages: is-symbol: 1.0.4 dev: true - /es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - dev: true - /esbuild@0.19.8: resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} engines: {node: '>=12'} @@ -2716,26 +2808,26 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.55.0): + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 @@ -2744,19 +2836,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) - eslint: 8.55.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) - typescript: 5.3.2 + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2765,10 +2857,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -2781,7 +2873,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2802,28 +2894,28 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.55.0): + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2832,16 +2924,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -2850,24 +2942,25 @@ packages: object.groupby: 1.0.1 object.values: 1.1.7 semver: 7.5.4 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-n@16.6.2(eslint@8.56.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.5.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 @@ -2876,17 +2969,17 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.55.0): + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-security@1.7.1: - resolution: {integrity: sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==} + /eslint-plugin-security@2.1.0: + resolution: {integrity: sha512-ywxclP954bf8d3gr6KOQ/AFc+PRvWuhOxtPOEtiHmVYiZr/mcgQtmSJq6+hTEXC5ylTjHnPPG+PEnzlDiWMXbQ==} dependencies: safe-regex: 2.1.1 dev: true @@ -2904,15 +2997,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -2951,10 +3044,6 @@ packages: - supports-color dev: true - /esm-env@1.0.0: - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - dev: true - /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3259,6 +3348,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -3266,10 +3362,6 @@ packages: define-properties: 1.2.1 dev: true - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3282,20 +3374,12 @@ packages: slash: 3.0.0 dev: true - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.2 dev: true - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -3390,10 +3474,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - dev: true - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3795,13 +3875,6 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -3886,11 +3959,6 @@ packages: engines: {node: '>=12'} dev: true - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -3904,15 +3972,15 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 dev: true - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - dependencies: - minimist: 1.2.8 + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true /mlly@1.4.2: @@ -3952,11 +4020,6 @@ packages: yargs-unparser: 2.0.0 dev: true - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: true - /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -4254,8 +4317,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + /prettier@3.2.2: + resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==} engines: {node: '>=14'} hasBin: true dev: true @@ -4367,13 +4430,6 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -4401,6 +4457,29 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.6 + '@rollup/rollup-android-arm64': 4.9.6 + '@rollup/rollup-darwin-arm64': 4.9.6 + '@rollup/rollup-darwin-x64': 4.9.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 + '@rollup/rollup-linux-arm64-gnu': 4.9.6 + '@rollup/rollup-linux-arm64-musl': 4.9.6 + '@rollup/rollup-linux-riscv64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-musl': 4.9.6 + '@rollup/rollup-win32-arm64-msvc': 4.9.6 + '@rollup/rollup-win32-ia32-msvc': 4.9.6 + '@rollup/rollup-win32-x64-msvc': 4.9.6 + fsevents: 2.3.3 + dev: true + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -4418,13 +4497,6 @@ packages: tslib: 2.6.0 dev: true - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} @@ -4457,15 +4529,6 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -4486,10 +4549,6 @@ packages: randombytes: 2.1.0 dev: true - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true - /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} @@ -4555,16 +4614,6 @@ packages: resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} dev: true - /sorcery@0.11.0: - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - buffer-crc32: 0.2.13 - minimist: 1.2.8 - sander: 0.5.1 - dev: true - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -4654,13 +4703,6 @@ packages: engines: {node: '>=12'} dev: true - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4701,33 +4743,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.6.2(svelte@4.2.8): - resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - dependencies: - '@jridgewell/trace-mapping': 0.3.20 - chokidar: 3.5.3 - fast-glob: 3.3.2 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 - svelte: 4.2.8 - svelte-preprocess: 5.1.1(svelte@4.2.8)(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - dev: true - /svelte-hmr@0.15.3(svelte@4.2.8): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} @@ -4737,53 +4752,6 @@ packages: svelte: 4.2.8 dev: true - /svelte-preprocess@5.1.1(svelte@4.2.8)(typescript@5.3.2): - resolution: {integrity: sha512-p/Dp4hmrBW5mrCCq29lEMFpIJT2FZsRlouxEc5qpbOmXRbaFs7clLs8oKPwD3xCFyZfv1bIhvOzpQkhMEVQdMw==} - engines: {node: '>= 14.10.0'} - requiresBuild: true - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.27.0 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.8 - typescript: 5.3.2 - dev: true - /svelte@4.2.8: resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} engines: {node: '>=16'} @@ -4828,13 +4796,6 @@ packages: convert-hrtime: 5.0.0 dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: true - /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -4867,17 +4828,17 @@ packages: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} dev: true - /ts-api-utils@1.0.3(typescript@5.3.2): + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -4955,6 +4916,12 @@ packages: hasBin: true dev: true + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + /ufo@1.3.1: resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: true @@ -4977,13 +4944,6 @@ packages: mlly: 1.4.2 dev: true - /undici@5.26.5: - resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.1.0 - dev: true - /unified@9.2.2: resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} dependencies: @@ -5002,7 +4962,7 @@ packages: '@types/unist': 2.0.10 dev: true - /unocss@0.58.0(postcss@8.4.32)(rollup@4.6.1)(vite@5.0.12): + /unocss@0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-MSPRHxBqWN+1AHGV+J5uUy4//e6ZBK6O+ISzD0qrXcCD/GNtxk1+lYjOK2ltkUiKX539+/KF91vNxzhhwEf+xA==} engines: {node: '>=14'} peerDependencies: @@ -5014,8 +4974,8 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.0(rollup@4.6.1)(vite@5.0.12) - '@unocss/cli': 0.58.0(rollup@4.6.1) + '@unocss/astro': 0.58.0(rollup@4.9.6)(vite@5.0.12) + '@unocss/cli': 0.58.0(rollup@4.9.6) '@unocss/core': 0.58.0 '@unocss/extractor-arbitrary-variants': 0.58.0 '@unocss/postcss': 0.58.0(postcss@8.4.32) @@ -5033,7 +4993,7 @@ packages: '@unocss/transformer-compile-class': 0.58.0 '@unocss/transformer-directives': 0.58.0 '@unocss/transformer-variant-group': 0.58.0 - '@unocss/vite': 0.58.0(rollup@4.6.1)(vite@5.0.12) + '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - postcss diff --git a/renovate.json b/renovate.json index 2eddfb44..43f4e81a 100644 --- a/renovate.json +++ b/renovate.json @@ -18,5 +18,6 @@ "matchDepTypes": ["engines", "packageManager"], "enabled": false } - ] + ], + "postUpdateOptions": ["pnpmDedupe"] }