diff --git a/.circleci/config.yml b/.circleci/config.yml index b1d97f020..e31ce3598 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,9 +13,15 @@ jobs: resource_class: xlarge steps: - checkout + - run: + name: Hot-upgrade Rust to 1.88 + command: ~/.cargo/bin/rustup default 1.88 && ~/.cargo/bin/rustup target add wasm32-unknown-unknown + - run: + name: Hot-upgrade Holochain CLI to 0.6.0-rc.1 + command: ~/.cargo/bin/cargo install holochain_cli@0.6.0-rc.1 - restore_cache: keys: - - rust-cache-{{ checksum "Cargo.lock" }}-v2 + - rust-cache-{{ checksum "Cargo.lock" }}-1.88 - rust-cache- - run: name: cargo fmt --check @@ -45,7 +51,7 @@ jobs: no_output_timeout: 30m command: cargo clippy --all --exclude ad4m-launcher - save_cache: - key: rust-cache-{{ checksum "Cargo.lock" }}-v2 + key: rust-cache-{{ checksum "Cargo.lock" }}-1.88 paths: - ./target - ~/.cargo/registry @@ -78,6 +84,12 @@ jobs: - checkout - attach_workspace: at: . + - run: + name: Hot-upgrade Rust to 1.88 + command: ~/.cargo/bin/rustup default 1.88 && ~/.cargo/bin/rustup target add wasm32-unknown-unknown + - run: + name: Hot-upgrade Holochain CLI to 0.6.0-rc.1 + command: ~/.cargo/bin/cargo install holochain_cli@0.6.0-rc.1 - restore_cache: keys: - agent-language-rust-cache-{{ checksum "bootstrap-languages/agent-language/hc-dna/Cargo.lock" }} @@ -94,10 +106,6 @@ jobs: keys: - p-diff-sync-rust-cache-{{ checksum "bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock" }} - p-diff-sync-rust-cache- - - restore_cache: - keys: - - p-diff-sync-socket-signaling-rust-cache-{{ checksum "bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.lock" }} - - p-diff-sync-socket-signaling-rust-cache- - run: name: Install specific pnpm version command: npm install -g pnpm@9.15.0 @@ -126,10 +134,6 @@ jobs: key: p-diff-sync-rust-cache-{{ checksum "bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock" }} paths: - ./bootstrap-languages/p-diff-sync/hc-dna/target - - save_cache: - key: p-diff-sync-socket-signaling-rust-cache-{{ checksum "bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.lock" }} - paths: - - ./bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/target\ - run: name: Install ffmpeg for transcription test command: sudo apt-get update && sudo apt-get install ffmpeg --fix-missing diff --git a/Cargo.lock b/Cargo.lock index 60c01c854..a0a7f143b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -86,9 +86,9 @@ dependencies = [ "coasys_juniper_graphql_transport_ws", "coasys_juniper_subscriptions", "coasys_juniper_warp", - "colored", + "colored 2.1.0", "crypto_box", - "deflate 1.0.0", + "deflate", "deno_core", "deno_error", "deno_fs", @@ -115,9 +115,9 @@ dependencies = [ "json5", "jsonwebtoken", "kalosm", - "kitsune2_api", + "kitsune2_api 0.1.15", "kitsune_p2p_types", - "lair_keystore_api 0.6.1", + "lair_keystore_api 0.6.3 (git+https://github.com/coasys/lair.git?branch=0.6.3-coasys)", "lazy_static", "libc", "log", @@ -151,7 +151,7 @@ dependencies = [ "tokio-rustls 0.26.0", "tokio-stream", "url", - "uuid 1.10.0", + "uuid 1.18.1", "warp", "webbrowser", "zip 0.6.6", @@ -164,7 +164,7 @@ dependencies = [ "ad4m-client", "ad4m-executor", "chrono", - "colored", + "colored 2.1.0", "directories", "dirs 5.0.1", "env_logger 0.10.2", @@ -320,6 +320,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -510,9 +519,20 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arcu" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8727c0fb4c436605c8f11c579ec86edcb729134aec4ee66e454efd99a91859f" +checksum = "e2bb19dd0246dfd956c754184eee75dce27a6dcbf5def6825bda0d7e47b535d4" + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] [[package]] name = "argon2" @@ -947,7 +967,7 @@ dependencies = [ "quote", "serde", "serde_json", - "ureq", + "ureq 2.12.1", ] [[package]] @@ -966,15 +986,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] -name = "automap" -version = "0.1.0" +name = "av1-grain" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99d887f4066f8a1b4a713a8121fab07ff543863ac86177ebdee6b5cb18acf12" +checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" dependencies = [ - "cfg-if 1.0.0", - "derive_more 0.99.18", - "serde", - "shrinkwraprs", + "anyhow", + "arrayvec 0.7.6", + "log", + "nom 8.0.0", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" +dependencies = [ + "arrayvec 0.7.6", ] [[package]] @@ -1007,27 +1038,55 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.4.5", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core 0.5.5", "base64 0.22.1", "bytes", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", "hyper-util", - "itoa 1.0.15", - "matchit", + "itoa", + "matchit 0.8.4", "memchr", "mime", "percent-encoding", "pin-project-lite", "rustversion", "serde", + "serde_json", + "serde_path_to_error", "sha1", "sync_wrapper", "tokio", - "tokio-tungstenite 0.24.0", + "tokio-tungstenite 0.26.2", "tower 0.5.2", "tower-layer", "tower-service", @@ -1042,7 +1101,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", @@ -1053,6 +1112,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum-core" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "axum-server" version = "0.7.2" @@ -1062,7 +1139,7 @@ dependencies = [ "arc-swap", "bytes", "fs-err", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", "hyper-util", @@ -1081,15 +1158,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" -[[package]] -name = "backon" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0b50b1b78dbadd44ab18b3c794e496f3a139abb9fbc27d9c94c4eebbb96496" -dependencies = [ - "fastrand", -] - [[package]] name = "backtrace" version = "0.3.74" @@ -1318,6 +1386,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bitstream-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" + [[package]] name = "bitvec" version = "1.0.1" @@ -1416,6 +1490,15 @@ dependencies = [ "objc2 0.5.2", ] +[[package]] +name = "block2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" +dependencies = [ + "objc2 0.6.1", +] + [[package]] name = "blocking" version = "1.6.1" @@ -1464,18 +1547,18 @@ checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor", + "brotli-decompressor 4.0.1", ] [[package]] name = "brotli" -version = "7.0.0" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor", + "brotli-decompressor 5.0.0", ] [[package]] @@ -1488,6 +1571,16 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bs58" version = "0.4.0" @@ -1513,7 +1606,7 @@ dependencies = [ "serde_bytes", "serde_json", "time 0.3.36", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -1538,6 +1631,12 @@ dependencies = [ "serde", ] +[[package]] +name = "built" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" + [[package]] name = "bumpalo" version = "3.16.0" @@ -1814,7 +1913,7 @@ dependencies = [ "capacity_builder_macros", "ecow", "hipstr", - "itoa 1.0.15", + "itoa", ] [[package]] @@ -1838,26 +1937,26 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", "semver 1.0.23", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 2.0.12", ] [[package]] name = "cargo_toml" -version = "0.17.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", - "toml 0.8.19", + "toml 0.9.5", ] [[package]] @@ -1918,7 +2017,7 @@ checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", "fnv", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -2044,21 +2143,6 @@ dependencies = [ "libloading 0.8.5", ] -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags 1.3.2", - "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width 0.1.13", - "vec_map", -] - [[package]] name = "clap" version = "3.2.25" @@ -2072,7 +2156,7 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.16.1", + "textwrap", ] [[package]] @@ -2188,7 +2272,7 @@ dependencies = [ "smartstring", "static_assertions", "url", - "uuid 1.10.0", + "uuid 1.18.1", "void", ] @@ -2266,36 +2350,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" -[[package]] -name = "cocoa" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" -dependencies = [ - "bitflags 2.9.1", - "block", - "cocoa-foundation", - "core-foundation 0.10.0", - "core-graphics 0.24.0", - "foreign-types 0.5.0", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" -dependencies = [ - "bitflags 2.9.1", - "block", - "core-foundation 0.10.0", - "core-graphics-types 0.2.0", - "libc", - "objc", -] - [[package]] name = "codespan-reporting" version = "0.11.1" @@ -2349,6 +2403,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "colored" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "colour" version = "0.7.0" @@ -2401,7 +2464,7 @@ checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" dependencies = [ "castaway", "cfg-if 1.0.0", - "itoa 1.0.15", + "itoa", "ryu", "static_assertions", ] @@ -2950,13 +3013,13 @@ checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" [[package]] name = "cron" -version = "0.12.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8c3e73077b4b4a6ab1ea5047c37c57aee77657bc8ecd6f29b0af082d0b0c07" +checksum = "5877d3fbf742507b66bc2a1945106bd30dd8504019d596901ddd012a4dd01740" dependencies = [ "chrono", - "nom 7.1.3", "once_cell", + "winnow 0.6.26", ] [[package]] @@ -3169,15 +3232,15 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.27.2" +version = "0.29.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" dependencies = [ "cssparser-macros", "dtoa-short", - "itoa 0.4.8", + "itoa", "matches", - "phf 0.8.0", + "phf 0.10.1", "proc-macro2", "quote", "smallvec", @@ -3192,7 +3255,7 @@ checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" dependencies = [ "cssparser-macros", "dtoa-short", - "itoa 1.0.15", + "itoa", "phf 0.11.2", "smallvec", ] @@ -3205,7 +3268,7 @@ checksum = "b7c66d1cd8ed61bf80b38432613a7a2f09401ab8d0501110655f8b341484a3e3" dependencies = [ "cssparser-macros", "dtoa-short", - "itoa 1.0.15", + "itoa", "phf 0.11.2", "smallvec", ] @@ -3315,43 +3378,43 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] name = "darling" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 1.0.109", + "strsim 0.11.1", + "syn 2.0.87", ] [[package]] name = "darling_core" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", @@ -3363,22 +3426,22 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.14.4", + "darling_core 0.20.10", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core 0.20.10", + "darling_core 0.21.3", "quote", "syn 2.0.87", ] @@ -3708,7 +3771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -3723,16 +3786,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "deflate" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" -dependencies = [ - "adler32", - "byteorder", -] - [[package]] name = "deflate" version = "1.0.0" @@ -3802,7 +3855,7 @@ dependencies = [ "deno_features", "thiserror 2.0.12", "tokio", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -3818,7 +3871,7 @@ dependencies = [ "deno_core", "deno_error", "futures", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", @@ -3849,7 +3902,7 @@ dependencies = [ "deno_error", "deno_media_type", "deno_path_util", - "http 1.1.0", + "http 1.3.1", "indexmap 2.9.0", "log", "once_cell", @@ -4004,7 +4057,7 @@ dependencies = [ "spki 0.7.3", "thiserror 2.0.12", "tokio", - "uuid 1.10.0", + "uuid 1.18.1", "x25519-dalek 2.0.1", ] @@ -4061,7 +4114,7 @@ dependencies = [ "error_reporter", "h2 0.4.6", "hickory-resolver", - "http 1.1.0", + "http 1.3.1", "http-body-util", "hyper 1.6.0", "hyper-rustls 0.27.3", @@ -4149,7 +4202,7 @@ dependencies = [ "deno_websocket", "flate2", "http 0.2.12", - "http 1.1.0", + "http 1.3.1", "httparse", "hyper 0.14.30", "hyper 1.6.0", @@ -4189,7 +4242,7 @@ dependencies = [ "pin-project", "rand 0.8.5", "tokio", - "uuid 1.10.0", + "uuid 1.18.1", "winapi 0.3.9", "windows-sys 0.59.0", ] @@ -4216,7 +4269,7 @@ dependencies = [ "denokv_remote", "denokv_sqlite", "faster-hex", - "http 1.1.0", + "http 1.3.1", "http-body-util", "log", "num-bigint", @@ -4377,7 +4430,7 @@ dependencies = [ "faster-hex", "h2 0.4.6", "hkdf 0.12.4", - "http 1.1.0", + "http 1.3.1", "http-body-util", "hyper 1.6.0", "hyper-util", @@ -4642,7 +4695,7 @@ dependencies = [ "deno_webstorage", "encoding_rs", "fastwebsockets", - "http 1.1.0", + "http 1.3.1", "http-body-util", "hyper 1.6.0", "hyper-util", @@ -4661,7 +4714,7 @@ dependencies = [ "tokio", "tokio-metrics", "twox-hash", - "uuid 1.10.0", + "uuid 1.18.1", "winapi 0.3.9", "windows-sys 0.59.0", ] @@ -4783,7 +4836,7 @@ dependencies = [ "serde", "thiserror 2.0.12", "tokio", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -4825,7 +4878,7 @@ dependencies = [ "deno_tls", "fastwebsockets", "h2 0.4.6", - "http 1.1.0", + "http 1.3.1", "http-body-util", "hyper 1.6.0", "hyper-util", @@ -4868,9 +4921,9 @@ dependencies = [ "deno_error", "futures", "num-bigint", - "prost", + "prost 0.13.5", "serde", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -4886,9 +4939,9 @@ dependencies = [ "deno_error", "denokv_proto", "futures", - "http 1.1.0", + "http 1.3.1", "log", - "prost", + "prost 0.13.5", "rand 0.8.5", "serde", "serde_json", @@ -4896,7 +4949,7 @@ dependencies = [ "tokio", "tokio-util", "url", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -4920,7 +4973,7 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tokio-stream", - "uuid 1.10.0", + "uuid 1.18.1", "v8_valueserializer", ] @@ -5196,12 +5249,6 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - [[package]] name = "digest" version = "0.9.0" @@ -5310,7 +5357,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.0", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -5363,7 +5410,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.5", + "libloading 0.7.4", ] [[package]] @@ -5390,6 +5437,18 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "dlopen2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi 0.3.9", +] + [[package]] name = "dlopen2_derive" version = "0.4.0" @@ -5745,16 +5804,16 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.4.3" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" dependencies = [ "cc", "memchr", "rustc_version 0.4.1", - "toml 0.8.19", + "toml 0.9.5", "vswhom", - "winreg 0.52.0", + "winreg 0.55.0", ] [[package]] @@ -5912,6 +5971,26 @@ dependencies = [ "log", ] +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -6204,39 +6283,30 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "fixt" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holochain_serialized_bytes", "lazy_static", "parking_lot", "paste", - "rand 0.8.5", - "rand_core 0.6.4", + "rand 0.9.1", "serde", - "strum 0.18.0", - "strum_macros 0.18.0", + "strum 0.27.1", + "strum_macros 0.27.1", ] [[package]] name = "flate2" -version = "1.0.33" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide 0.8.8", ] -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - [[package]] name = "float-cmp" version = "0.10.0" @@ -6267,6 +6337,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "font" version = "0.1.0" @@ -7168,8 +7244,8 @@ version = "0.1.0" source = "git+https://github.com/s3bk/glyphmatcher#7bd5d40aaa8893fa4f2e07c758fa34127e176c8c" dependencies = [ "font", - "istring 0.4.2", - "itertools 0.14.0", + "istring 0.4.4", + "itertools 0.8.2", "pathfinder_content", "pathfinder_geometry", "pdf_encoding 0.4.0 (git+https://github.com/pdf-rs/encoding)", @@ -7217,7 +7293,7 @@ dependencies = [ "log", "presser", "thiserror 1.0.63", - "windows 0.58.0", + "windows 0.56.0", ] [[package]] @@ -7273,7 +7349,7 @@ dependencies = [ "serde", "serde_json", "thiserror 1.0.63", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -7428,7 +7504,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", + "http 1.3.1", "indexmap 2.9.0", "slab", "tokio", @@ -7525,10 +7601,19 @@ name = "hashbrown" version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -7541,45 +7626,25 @@ dependencies = [ ] [[package]] -name = "hc_deepkey_sdk" -version = "0.8.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" -dependencies = [ - "hc_deepkey_types", - "hdk", - "holochain_serialized_bytes", - "serde", - "serde_bytes", -] - -[[package]] -name = "hc_deepkey_types" -version = "0.9.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +name = "hc_seed_bundle" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f930e251000e258ff14c36c4d045c9ec1dcbf2a6fff53b1432342b9a34df5ae" dependencies = [ - "hdi", - "holo_hash", - "holochain_integrity_types", - "holochain_serialized_bytes", + "futures", + "one_err", + "rmp-serde", "rmpv", "serde", -] - -[[package]] -name = "hc_r2d2_sqlite" -version = "0.25.0" -source = "git+https://github.com/coasys/hc_r2d2-sqlite.git?branch=coasys#3616be1aad99c615441904eddfe963242dbcdbdb" -dependencies = [ - "r2d2", - "rusqlite", - "uuid 1.10.0", + "serde_bytes", + "sodoken 0.0.11", ] [[package]] name = "hc_seed_bundle" -version = "0.2.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f930e251000e258ff14c36c4d045c9ec1dcbf2a6fff53b1432342b9a34df5ae" +checksum = "5c7fc57959f7161c8cab812df90dc06f2b9762871295bf38b9c41f9958c47d0e" dependencies = [ "futures", "one_err", @@ -7587,13 +7652,14 @@ dependencies = [ "rmpv", "serde", "serde_bytes", - "sodoken 0.0.11", + "sodoken 0.1.0", + "tokio", ] [[package]] name = "hc_seed_bundle" -version = "0.3.1" -source = "git+https://github.com/coasys/lair.git?branch=0.6.1-coasys#873c5f928d9e6054f2fd08038317cdcb2273a84f" +version = "0.6.3" +source = "git+https://github.com/coasys/lair.git?branch=0.6.3-coasys#6a4c3486928104471069baa565bb55d66361ace6" dependencies = [ "futures", "one_err", @@ -7607,14 +7673,15 @@ dependencies = [ [[package]] name = "hdi" -version = "0.6.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.7.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.3", "hdk_derive", "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", + "holochain_serialized_bytes_derive", "holochain_wasmer_guest", "paste", "serde", @@ -7625,10 +7692,10 @@ dependencies = [ [[package]] name = "hdk" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.3", "hdi", "hdk_derive", "holo_hash", @@ -7636,25 +7703,23 @@ dependencies = [ "holochain_zome_types", "paste", "serde", - "serde_bytes", - "thiserror 1.0.63", "tracing", "tracing-core", ] [[package]] name = "hdk_derive" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "darling 0.14.4", + "darling 0.21.3", "heck 0.5.0", "holochain_integrity_types", "paste", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -7742,15 +7807,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.1" @@ -7854,7 +7910,7 @@ dependencies = [ "serde", "serde_json", "thiserror 1.0.63", - "ureq", + "ureq 2.12.1", ] [[package]] @@ -7977,60 +8033,58 @@ dependencies = [ [[package]] name = "holo_hash" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64 0.22.1", "blake2b_simd", "bytes", - "derive_more 0.99.18", + "derive_more 2.0.1", "fixt", "futures", "holochain_serialized_bytes", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_wasmer_common", - "kitsune2_api", + "kitsune2_api 0.3.1", "must_future", "proptest", "proptest-derive", - "rand 0.8.5", + "rand 0.9.1", "rusqlite", + "schemars 0.9.0", "serde", "serde_bytes", "sha2 0.10.8", - "thiserror 1.0.63", + "thiserror 2.0.12", ] [[package]] name = "holochain" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "anyhow", "async-once-cell", "async-trait", - "backtrace", "base64 0.22.1", + "bytes", "cfg-if 1.0.0", "chrono", + "clap 4.5.38", "contrafact", - "derive_more 0.99.18", + "derive_more 2.0.1", "diff", "either", - "fallible-iterator", "fixt", "futures", "get_if_addrs", - "getrandom 0.2.15", - "hc_deepkey_sdk", + "getrandom 0.3.3", "hdk", "holo_hash", "holochain_cascade", "holochain_chc", "holochain_conductor_api", "holochain_conductor_config", - "holochain_conductor_services", - "holochain_deepkey_dna", "holochain_keystore", "holochain_metrics", "holochain_nonce", @@ -8041,9 +8095,9 @@ dependencies = [ "holochain_state", "holochain_test_wasm_common", "holochain_timestamp", - "holochain_trace 0.5.6", + "holochain_trace 0.6.0-rc.0", "holochain_types", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_wasm_test_utils", "holochain_wasmer_host", "holochain_websocket", @@ -8051,12 +8105,12 @@ dependencies = [ "hostname 0.4.0", "human-panic", "indexmap 2.9.0", - "itertools 0.12.1", - "kitsune2_api", + "itertools 0.14.0", + "kitsune2_api 0.3.1", "kitsune2_bootstrap_srv", "kitsune2_core", "lair_keystore", - "lair_keystore_api 0.6.1", + "lair_keystore_api 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "matches", "mockall", "mr_bundle", @@ -8067,78 +8121,73 @@ dependencies = [ "opentelemetry_api", "parking_lot", "petgraph", - "rand 0.8.5", + "rand 0.9.1", "rand-utf8", - "rand_chacha 0.3.1", "rusqlite", "rustls 0.23.27", - "schemars", + "schemars 0.9.0", "sd-notify", "serde", "serde_bytes", "serde_json", "serde_with", "serde_yaml", - "sha3", "shrinkwraprs", "sodoken 0.1.0", - "structopt", - "strum 0.18.0", + "strum 0.27.1", "subtle-encoding", "task-motel", "tempfile", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tokio-stream", - "toml 0.8.19", "tracing", "tracing-futures", "tracing-subscriber 0.3.18", "unwrap_to", "url", "url2", - "uuid 1.10.0", + "uuid 1.18.1", "wasmer", "wasmer-middlewares", ] [[package]] name = "holochain_cascade" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "async-trait", "fixt", "futures", "holo_hash", "holochain_chc", - "holochain_nonce", "holochain_p2p", "holochain_serialized_bytes", "holochain_sqlite", "holochain_state", - "holochain_trace 0.5.6", + "holochain_trace 0.6.0-rc.0", "holochain_types", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_zome_types", - "kitsune2_api", + "kitsune2_api 0.3.1", "mockall", "opentelemetry_api", "parking_lot", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "holochain_chc" -version = "0.2.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.3.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "async-trait", - "derive_more 0.99.18", + "derive_more 2.0.1", "futures", - "getrandom 0.2.15", + "getrandom 0.3.3", "holo_hash", "holochain_keystore", "holochain_nonce", @@ -8151,29 +8200,27 @@ dependencies = [ "serde", "serde_bytes", "serde_json", - "thiserror 1.0.63", + "thiserror 2.0.12", "tracing", "url", ] [[package]] name = "holochain_cli_bundle" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "anyhow", "clap 4.5.38", - "futures", "holochain_serialized_bytes", "holochain_types", - "holochain_util 0.5.6", - "holochain_wasmer_host", + "holochain_util 0.6.0-rc.0", "mr_bundle", + "schemars 0.9.0", + "serde_json", "serde_yaml", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", - "tracing", - "wasmer", ] [[package]] @@ -8194,41 +8241,42 @@ dependencies = [ [[package]] name = "holochain_conductor_api" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "cfg-if 1.0.0", - "derive_more 0.99.18", + "derive_more 2.0.1", "holo_hash", "holochain_keystore", "holochain_serialized_bytes", "holochain_state_types", "holochain_types", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_zome_types", "indexmap 2.9.0", - "kitsune2_api", + "kitsune2_api 0.3.1", "kitsune2_core", - "schemars", + "kitsune2_gossip", + "kitsune2_transport_tx5", + "schemars 0.9.0", "serde", "serde_json", "serde_yaml", "shrinkwraprs", - "thiserror 1.0.63", + "thiserror 2.0.12", "tracing", "url2", ] [[package]] name = "holochain_conductor_config" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "ansi_term", "anyhow", "holochain_conductor_api", "holochain_types", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "nanoid", "serde", "serde_yaml", @@ -8236,49 +8284,20 @@ dependencies = [ "url2", ] -[[package]] -name = "holochain_conductor_services" -version = "0.4.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" -dependencies = [ - "anyhow", - "async-trait", - "derive_more 0.99.18", - "futures", - "hc_deepkey_sdk", - "holochain_keystore", - "holochain_serialized_bytes", - "holochain_types", - "holochain_util 0.5.6", - "mockall", - "must_future", - "nanoid", - "serde", - "serde_bytes", - "thiserror 1.0.63", - "tokio", - "tracing", -] - -[[package]] -name = "holochain_deepkey_dna" -version = "0.0.8-dev.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0aa773b74c40ef5e4e02f414d8cbfc4e92520a93511055a3fbccc12d2dd045" - [[package]] name = "holochain_integrity_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "derive_builder", "holo_hash", "holochain_secure_primitive", "holochain_serialized_bytes", "holochain_timestamp", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "proptest", "proptest-derive", + "schemars 0.9.0", "serde", "serde_bytes", "subtle", @@ -8288,28 +8307,27 @@ dependencies = [ [[package]] name = "holochain_keystore" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64 0.22.1", - "derive_more 0.99.18", + "derive_more 2.0.1", "futures", "holo_hash", "holochain_secure_primitive", "holochain_serialized_bytes", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_zome_types", "lair_keystore", "must_future", "nanoid", "one_err", "parking_lot", - "schemars", + "schemars 0.9.0", "serde", - "serde_bytes", "shrinkwraprs", "sodoken 0.1.0", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tracing", "url2", @@ -8317,8 +8335,8 @@ dependencies = [ [[package]] name = "holochain_metrics" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "influxive", "opentelemetry_api", @@ -8327,23 +8345,23 @@ dependencies = [ [[package]] name = "holochain_nonce" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.3", "holochain_secure_primitive", "holochain_timestamp", ] [[package]] name = "holochain_p2p" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "async-trait", + "base64 0.22.1", "blake2b_simd", "bytes", - "derive_more 0.99.18", "fixt", "futures", "holo_hash", @@ -8354,31 +8372,31 @@ dependencies = [ "holochain_sqlite", "holochain_state", "holochain_timestamp", - "holochain_trace 0.5.6", + "holochain_trace 0.6.0-rc.0", "holochain_types", "holochain_zome_types", "kitsune2", - "kitsune2_api", + "kitsune2_api 0.3.1", "kitsune2_core", "kitsune2_gossip", - "lair_keystore_api 0.6.1", + "lair_keystore_api 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "mockall", "opentelemetry_api", "parking_lot", - "rand 0.8.5", + "rand 0.9.1", "rmp-serde", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", - "tokio-stream", "tracing", + "tracing-appender", ] [[package]] name = "holochain_secure_primitive" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "paste", "serde", @@ -8415,25 +8433,24 @@ dependencies = [ [[package]] name = "holochain_sqlite" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "anyhow", "async-trait", "base64 0.22.1", "bytes", - "derive_more 0.99.18", + "derive_more 2.0.1", "fallible-iterator", "futures", - "getrandom 0.2.15", - "hc_r2d2_sqlite", + "getrandom 0.3.3", "holo_hash", "holochain_nonce", "holochain_serialized_bytes", "holochain_timestamp", - "holochain_util 0.5.6", + "holochain_util 0.6.0-rc.0", "holochain_zome_types", - "kitsune2_api", + "kitsune2_api 0.3.1", "nanoid", "num_cpus", "once_cell", @@ -8441,32 +8458,32 @@ dependencies = [ "parking_lot", "pretty_assertions", "r2d2", + "r2d2_sqlite", "rmp-serde", "rusqlite", "scheduled-thread-pool", - "schemars", + "schemars 0.9.0", "serde", - "serde_json", "shrinkwraprs", "sodoken 0.1.0", - "sqlformat", + "sqlformat 0.3.5", "tempfile", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "holochain_state" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "async-recursion", "base64 0.22.1", "chrono", "contrafact", "cron", - "derive_more 0.99.18", + "derive_more 2.0.1", "fallible-iterator", "holo_hash", "holochain_chc", @@ -8475,26 +8492,25 @@ dependencies = [ "holochain_serialized_bytes", "holochain_sqlite", "holochain_state_types", + "holochain_timestamp", "holochain_types", "holochain_zome_types", - "kitsune2_api", - "maplit", + "kitsune2_api 0.3.1", "nanoid", "one_err", - "parking_lot", "serde", "serde_json", "shrinkwraprs", "tempfile", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "holochain_state_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holo_hash", "holochain_integrity_types", @@ -8503,8 +8519,8 @@ dependencies = [ [[package]] name = "holochain_test_wasm_common" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "hdk", "holochain_serialized_bytes", @@ -8513,8 +8529,8 @@ dependencies = [ [[package]] name = "holochain_timestamp" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", "rusqlite", @@ -8529,87 +8545,80 @@ checksum = "81c18eb741e8e78650ab12508b52ee5b060f4985a089234515cb0debadec3447" dependencies = [ "chrono", "derive_more 0.99.18", - "inferno", + "inferno 0.11.21", "once_cell", "serde_json", "thiserror 1.0.63", "tracing", "tracing-core", - "tracing-serde", + "tracing-serde 0.1.3", "tracing-subscriber 0.3.18", ] [[package]] name = "holochain_trace" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", - "derive_more 0.99.18", - "inferno", - "once_cell", + "derive_more 2.0.1", + "inferno 0.12.3", "serde_json", - "thiserror 1.0.63", + "thiserror 2.0.12", "tracing", "tracing-core", - "tracing-serde", + "tracing-serde 0.2.0", "tracing-subscriber 0.3.18", ] [[package]] name = "holochain_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "anyhow", "async-trait", - "automap", "backtrace", - "base64 0.13.1", - "cfg-if 0.1.10", - "chrono", + "base64 0.22.1", + "bytes", "contrafact", "derive_builder", - "derive_more 0.99.18", + "derive_more 2.0.1", "fixt", - "flate2", "futures", - "getrandom 0.2.15", "holo_hash", "holochain_keystore", "holochain_nonce", "holochain_serialized_bytes", "holochain_sqlite", "holochain_timestamp", - "holochain_trace 0.5.6", - "holochain_util 0.5.6", + "holochain_trace 0.6.0-rc.0", + "holochain_util 0.6.0-rc.0", "holochain_zome_types", "indexmap 2.9.0", "isotest", - "itertools 0.12.1", - "kitsune2_api", + "itertools 0.14.0", + "kitsune2_api 0.3.1", "mr_bundle", "must_future", "nanoid", - "one_err", "parking_lot", "proptest", "proptest-derive", - "rand 0.8.5", + "rand 0.9.1", "regex", "rusqlite", - "schemars", + "schemars 0.9.0", "serde", - "serde_bytes", "serde_derive", "serde_json", "serde_with", "serde_yaml", "shrinkwraprs", - "strum 0.18.0", - "strum_macros 0.18.0", + "strum 0.27.1", + "strum_macros 0.27.1", "tempfile", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -8621,39 +8630,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fa9a3b7b5207aea2b65b6c56abe979f833526899af11a0c224939c61e24beb0" dependencies = [ "cfg-if 1.0.0", - "colored", + "colored 2.1.0", "dunce", "futures", "once_cell", - "schemars", + "schemars 0.8.21", ] [[package]] name = "holochain_util" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "backtrace", "cfg-if 1.0.0", - "colored", + "colored 3.0.0", "dunce", "futures", "once_cell", "rpassword", - "schemars", + "schemars 0.9.0", "sodoken 0.1.0", "tokio", ] [[package]] name = "holochain_wasm_test_utils" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holochain_types", - "holochain_util 0.5.6", - "strum 0.18.0", - "strum_macros 0.18.0", + "strum 0.27.1", + "strum_macros 0.27.1", "toml 0.8.19", "walkdir", ] @@ -8704,29 +8712,30 @@ dependencies = [ [[package]] name = "holochain_websocket" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "async-trait", + "bytes", "futures", "holochain_serialized_bytes", "holochain_types", "serde", "serde_bytes", - "thiserror 1.0.63", + "thiserror 2.0.12", "tokio", - "tokio-tungstenite 0.21.0", + "tokio-tungstenite 0.27.0", "tracing", ] [[package]] name = "holochain_zome_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "contrafact", "derive_builder", - "derive_more 0.99.18", + "derive_more 2.0.1", "fixt", "holo_hash", "holochain_integrity_types", @@ -8734,21 +8743,23 @@ dependencies = [ "holochain_serialized_bytes", "holochain_timestamp", "holochain_wasmer_common", - "nanoid", "num_enum", "once_cell", "proptest", "proptest-derive", - "rand 0.8.5", + "rand 0.9.1", "rusqlite", + "schemars 0.9.0", "serde", "serde_bytes", "serde_yaml", "shrinkwraprs", - "strum 0.18.0", + "strum 0.27.1", + "strum_macros 0.27.1", "subtle", - "thiserror 1.0.63", + "thiserror 2.0.12", "tracing", + "uuid 1.18.1", ] [[package]] @@ -8816,20 +8827,6 @@ dependencies = [ "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 = "html5ever" version = "0.27.0" @@ -8864,18 +8861,18 @@ checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", - "itoa 1.0.15", + "itoa", ] [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", - "itoa 1.0.15", + "itoa", ] [[package]] @@ -8896,7 +8893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", ] [[package]] @@ -8907,7 +8904,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "pin-project-lite", ] @@ -8937,7 +8934,7 @@ dependencies = [ "serde", "serde_derive", "toml 0.8.19", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -8961,7 +8958,7 @@ dependencies = [ "http-body 0.4.6", "httparse", "httpdate", - "itoa 1.0.15", + "itoa", "pin-project-lite", "socket2", "tokio", @@ -8980,11 +8977,11 @@ dependencies = [ "futures-channel", "futures-util", "h2 0.4.6", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", - "itoa 1.0.15", + "itoa", "pin-project-lite", "smallvec", "tokio", @@ -9012,7 +9009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.3.1", "hyper 1.6.0", "hyper-util", "rustls 0.23.27", @@ -9058,7 +9055,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", "libc", @@ -9094,12 +9091,12 @@ dependencies = [ [[package]] name = "ico" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" dependencies = [ "byteorder", - "png 0.17.13", + "png", ] [[package]] @@ -9289,21 +9286,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "image" -version = "0.23.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-iter", - "num-rational 0.3.2", - "num-traits", - "png 0.16.8", -] - [[package]] name = "image" version = "0.24.9" @@ -9317,7 +9299,7 @@ dependencies = [ "gif", "jpeg-decoder", "num-traits", - "png 0.17.13", + "png", "qoi", "tiff", ] @@ -9330,13 +9312,37 @@ checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" dependencies = [ "bytemuck", "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", "num-traits", - "png 0.17.13", + "png", + "qoi", + "ravif", + "rayon", + "rgb", "tiff", "zune-core", "zune-jpeg", ] +[[package]] +name = "image-webp" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" +dependencies = [ + "byteorder-lite", + "quick-error 2.0.1", +] + +[[package]] +name = "imgref" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" + [[package]] name = "import_map" version = "0.21.0" @@ -9422,6 +9428,15 @@ dependencies = [ "cfb", ] +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + [[package]] name = "inferno" version = "0.11.21" @@ -9436,7 +9451,7 @@ dependencies = [ "env_logger 0.11.6", "indexmap 2.9.0", "is-terminal", - "itoa 1.0.15", + "itoa", "log", "num-format", "once_cell", @@ -9445,6 +9460,28 @@ dependencies = [ "str_stack", ] +[[package]] +name = "inferno" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96d2465363ed2d81857759fc864cf6bb7997f79327aec028d65bd7989393685" +dependencies = [ + "ahash 0.8.11", + "clap 4.5.38", + "crossbeam-channel 0.5.13", + "crossbeam-utils 0.8.20", + "dashmap 6.0.1", + "env_logger 0.11.6", + "indexmap 2.9.0", + "itoa", + "log", + "num-format", + "once_cell", + "quick-xml 0.37.5", + "rgb", + "str_stack", +] + [[package]] name = "influxdb" version = "0.7.2" @@ -9596,6 +9633,17 @@ dependencies = [ "web-sys", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "intervallum" version = "1.4.1" @@ -9705,8 +9753,8 @@ dependencies = [ [[package]] name = "istring" -version = "0.4.2" -source = "git+https://github.com/s3bk/istring#bb736be4b5afda8a273b09ad7b27884c79ff09a5" +version = "0.4.4" +source = "git+https://github.com/s3bk/istring#e4d16cfd57a3a5f4b5bd8446d7a655fdb8a7ce0e" dependencies = [ "serde", ] @@ -9765,12 +9813,6 @@ dependencies = [ "either", ] -[[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.15" @@ -9910,7 +9952,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem", + "pem 1.1.1", "ring 0.16.20", "serde", "serde_json", @@ -9944,7 +9986,7 @@ dependencies = [ [[package]] name = "kalosm" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "arroy", "async-trait", @@ -9973,7 +10015,7 @@ dependencies = [ [[package]] name = "kalosm-common" version = "0.3.3" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -9992,7 +10034,7 @@ dependencies = [ [[package]] name = "kalosm-language" version = "0.3.3" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "anyhow", "arroy", @@ -10044,7 +10086,7 @@ dependencies = [ [[package]] name = "kalosm-language-model" version = "0.3.3" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "anyhow", "async-lock", @@ -10067,7 +10109,7 @@ dependencies = [ [[package]] name = "kalosm-llama" version = "0.3.3" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -10092,7 +10134,7 @@ dependencies = [ [[package]] name = "kalosm-ocr" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -10111,7 +10153,7 @@ dependencies = [ [[package]] name = "kalosm-parse-macro" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "proc-macro2", "quote", @@ -10121,7 +10163,7 @@ dependencies = [ [[package]] name = "kalosm-sample" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "kalosm-parse-macro", "regex-automata 0.4.7", @@ -10130,7 +10172,7 @@ dependencies = [ [[package]] name = "kalosm-sound" version = "0.3.4" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "byteorder", "candle-core", @@ -10159,7 +10201,7 @@ dependencies = [ [[package]] name = "kalosm-streams" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "futures-util", "image 0.24.9", @@ -10170,7 +10212,7 @@ dependencies = [ [[package]] name = "kalosm-vision" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "image 0.24.9", "kalosm-ocr", @@ -10217,15 +10259,16 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "kitsune2" -version = "0.1.15" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ffb97ea47c67c87cd8ee6c8806c1a23f0d07ee98b4a071544f32af1fea2309" +checksum = "88acf4edc2ab4fb63b2fef5798d5109e3244d23269ad7ab0bb3a40fb0fd4d5cc" dependencies = [ "bytes", - "kitsune2_api", + "kitsune2_api 0.3.1", "kitsune2_core", "kitsune2_gossip", "kitsune2_transport_tx5", + "serde", ] [[package]] @@ -10237,7 +10280,24 @@ dependencies = [ "base64 0.22.1", "bytes", "futures", - "prost", + "prost 0.13.5", + "serde", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", +] + +[[package]] +name = "kitsune2_api" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e38a0929399b79088bfc8af6b1b5d2efedbb6d5c0ec598a0395cd4b622fa9c45" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "prost 0.14.1", "serde", "serde_json", "thiserror 2.0.12", @@ -10247,25 +10307,27 @@ dependencies = [ [[package]] name = "kitsune2_bootstrap_client" -version = "0.1.9" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81eb60a74a30415ca4f8506cc08e93c5b92f1de88520b5189e4a06940e20b524" +checksum = "1109d58dbbd70ac212bbc6228961338bc18567ea8025ef6ed167cb85a5518d14" dependencies = [ "base64 0.22.1", - "kitsune2_api", + "kitsune2_api 0.3.1", + "serde", + "serde_json", "tracing", - "ureq", + "ureq 3.0.3", "url", ] [[package]] name = "kitsune2_bootstrap_srv" -version = "0.1.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01914a8b9b7b618c699600c0cafaff60ba6dff0b81318202125c97387f4cc97" +checksum = "a9b71338ed826426afa23fc2e78ee87ceab0ff14989755f1b8122fe420ca6bd7" dependencies = [ "async-channel", - "axum", + "axum 0.8.4", "axum-server", "base64 0.22.1", "bytes", @@ -10273,64 +10335,65 @@ dependencies = [ "ctrlc", "ed25519-dalek 2.1.1", "futures", + "http 1.3.1", "num_cpus", "rustls 0.23.27", - "sbd-server 0.1.0", + "sbd-server 0.3.3", "serde", "serde_json", "tempfile", "tokio", - "tokio-rustls 0.26.0", + "tower-http", "tracing", "tracing-subscriber 0.3.18", ] [[package]] name = "kitsune2_core" -version = "0.1.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a97f6d17c6f32a49aee74269692fbfd74ce5af2d43b780c402406a9c1bf3f2d" +checksum = "5a7bee20d1400e7b760afec865b7d924a70690c3a2af721369b699a4b046eef7" dependencies = [ - "backon", "bytes", "ed25519-dalek 2.1.1", "futures", - "kitsune2_api", + "kitsune2_api 0.3.1", "kitsune2_bootstrap_client", - "prost", + "prost 0.14.1", "rand 0.8.5", + "schemars 0.9.0", "serde", "serde_json", "tokio", "tracing", - "ureq", "url", ] [[package]] name = "kitsune2_dht" -version = "0.1.9" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c4efccd27b1cca38a1d80912efa8bb784023abb506c5f3d7e8a1f724f642d9" +checksum = "b39f2b40ebb1eb2320ba7d1d13de96dd19c584b2dbaed98255b88a15acb1dc8a" dependencies = [ "bytes", - "kitsune2_api", + "kitsune2_api 0.3.1", "tracing", ] [[package]] name = "kitsune2_gossip" -version = "0.1.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8b788c1dc7166b05c34e26d13eade153db73fc37608d337c2b8399be45caac" +checksum = "5923fb41c0b02e352538e80480eff857a127bc44a3acabacc69ca338c68ad8fb" dependencies = [ "bytes", "futures", - "kitsune2_api", + "kitsune2_api 0.3.1", "kitsune2_core", "kitsune2_dht", - "prost", + "prost 0.14.1", "rand 0.8.5", + "schemars 0.9.0", "serde", "serde_json", "thiserror 2.0.12", @@ -10340,15 +10403,15 @@ dependencies = [ [[package]] name = "kitsune2_transport_tx5" -version = "0.1.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efda8b614d07e8406726073b35c62e0db5e536d5a9b9ed248e077c03c1cc17c" +checksum = "70169c3b5627cd3fcf875f8468173a5ae8de92ac596c63692f80636332f54126" dependencies = [ "base64 0.22.1", "bytes", - "kitsune2_api", + "kitsune2_api 0.3.1", + "schemars 0.9.0", "serde", - "serde_json", "tokio", "tracing", "tx5", @@ -10454,7 +10517,7 @@ dependencies = [ "paste", "rmp-serde", "rustls 0.21.11", - "schemars", + "schemars 0.8.21", "serde", "serde_bytes", "serde_json", @@ -10487,29 +10550,28 @@ dependencies = [ [[package]] name = "kuchikiki" -version = "0.8.2" +version = "0.8.8-speedreader" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" dependencies = [ - "cssparser 0.27.2", - "html5ever 0.26.0", - "indexmap 1.9.3", - "matches", - "selectors 0.22.0", + "cssparser 0.29.6", + "html5ever 0.29.1", + "indexmap 2.9.0", + "selectors 0.24.0", ] [[package]] name = "lair_keystore" -version = "0.6.1" -source = "git+https://github.com/coasys/lair.git?branch=0.6.1-coasys#873c5f928d9e6054f2fd08038317cdcb2273a84f" +version = "0.6.3" +source = "git+https://github.com/coasys/lair.git?branch=0.6.3-coasys#6a4c3486928104471069baa565bb55d66361ace6" dependencies = [ - "lair_keystore_api 0.6.1", + "clap 4.5.38", + "lair_keystore_api 0.6.3 (git+https://github.com/coasys/lair.git?branch=0.6.3-coasys)", "pretty_assertions", "rpassword", "rusqlite", - "sqlformat", - "structopt", - "sysinfo 0.34.2", + "sqlformat 0.4.0", + "sysinfo 0.37.2", "tracing-subscriber 0.3.18", ] @@ -10526,7 +10588,7 @@ dependencies = [ "nanoid", "once_cell", "parking_lot", - "rcgen", + "rcgen 0.10.0", "serde", "serde_json", "serde_yaml", @@ -10540,28 +10602,63 @@ dependencies = [ [[package]] name = "lair_keystore_api" -version = "0.6.1" -source = "git+https://github.com/coasys/lair.git?branch=0.6.1-coasys#873c5f928d9e6054f2fd08038317cdcb2273a84f" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b120af98d680f80d913b60b9324210be51c1f58748be92d53f32521f3b27e4b1" dependencies = [ "base64 0.22.1", "dunce", - "hc_seed_bundle 0.3.1", - "lru 0.13.0", + "hc_seed_bundle 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lru 0.16.2", "nanoid", "once_cell", "one_err", - "rcgen", + "rcgen 0.13.2", "serde", "serde_json", "serde_yaml", "tokio", - "toml 0.8.19", + "toml 0.9.5", + "tracing", + "url", + "winapi 0.3.9", + "zeroize", +] + +[[package]] +name = "lair_keystore_api" +version = "0.6.3" +source = "git+https://github.com/coasys/lair.git?branch=0.6.3-coasys#6a4c3486928104471069baa565bb55d66361ace6" +dependencies = [ + "base64 0.22.1", + "dunce", + "hc_seed_bundle 0.6.3 (git+https://github.com/coasys/lair.git?branch=0.6.3-coasys)", + "lru 0.16.2", + "nanoid", + "once_cell", + "one_err", + "rcgen 0.13.2", + "serde", + "serde_json", + "serde_yaml", + "tokio", + "toml 0.9.5", "tracing", "url", "winapi 0.3.9", "zeroize", ] +[[package]] +name = "lambert_w" +version = "1.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c567f2087fc83535a312e683b6ed8811395690ef896df7b82966b21b7526580" +dependencies = [ + "num-complex", + "num-traits", +] + [[package]] name = "lazy-regex" version = "3.3.0" @@ -10764,9 +10861,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libffi" @@ -10811,6 +10908,16 @@ dependencies = [ "rle-decode-fast", ] +[[package]] +name = "libfuzzer-sys" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +dependencies = [ + "arbitrary", + "cc", +] + [[package]] name = "libloading" version = "0.7.4" @@ -10908,7 +11015,7 @@ dependencies = [ "minisign-verify", "pkg-config", "tar", - "ureq", + "ureq 2.12.1", "vcpkg", "zip 2.3.0", ] @@ -10946,6 +11053,15 @@ version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c6639b70a7ce854b79c70d7e83f16b5dc0137cc914f3d7d03803b513ecc67ac" +[[package]] +name = "libz-rs-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +dependencies = [ + "zlib-rs", +] + [[package]] name = "libz-sys" version = "1.1.20" @@ -11025,11 +11141,10 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg 1.3.0", "scopeguard", ] @@ -11110,6 +11225,15 @@ dependencies = [ "tracing-subscriber 0.3.18", ] +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + [[package]] name = "lru" version = "0.12.4" @@ -11121,11 +11245,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.13.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" dependencies = [ - "hashbrown 0.15.3", + "hashbrown 0.16.0", ] [[package]] @@ -11233,20 +11357,6 @@ dependencies = [ "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 = "markup5ever" version = "0.12.1" @@ -11334,6 +11444,12 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + [[package]] name = "matrixmultiply" version = "0.3.9" @@ -11344,6 +11460,16 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if 1.0.0", + "rayon", +] + [[package]] name = "maybe-uninit" version = "2.0.0" @@ -11519,15 +11645,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a05b5d0594e0cb1ad8cee3373018d2b84e25905dc75b2468114cc9a8e86cfc20" -[[package]] -name = "miniz_oxide" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" -dependencies = [ - "adler32", -] - [[package]] name = "miniz_oxide" version = "0.7.4" @@ -11545,6 +11662,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -11574,14 +11692,13 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if 1.0.0", "downcast", "fragile", - "lazy_static", "mockall_derive", "predicates", "predicates-tree", @@ -11589,14 +11706,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if 1.0.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -11615,7 +11732,7 @@ dependencies = [ "smallvec", "tagptr", "thiserror 1.0.63", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -11653,42 +11770,40 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "mr_bundle" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "derive_more 0.99.18", + "bytes", + "dunce", "flate2", "futures", - "holochain_util 0.5.6", - "proptest", - "proptest-derive", - "reqwest 0.12.9", + "holochain_util 0.6.0-rc.0", "rmp-serde", "serde", - "serde_bytes", "serde_yaml", - "test-strategy", - "thiserror 1.0.63", + "thiserror 2.0.12", + "tokio", ] [[package]] name = "muda" -version = "0.15.3" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" dependencies = [ "crossbeam-channel 0.5.13", "dpi", "gtk", "keyboard-types", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", "once_cell", - "png 0.17.13", + "png", "serde", - "thiserror 1.0.63", - "windows-sys 0.59.0", + "thiserror 2.0.12", + "windows-sys 0.60.2", ] [[package]] @@ -11718,7 +11833,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http 1.1.0", + "http 1.3.1", "httparse", "memchr", "mime", @@ -11833,7 +11948,7 @@ dependencies = [ "matrixmultiply", "nalgebra-macros", "num-complex", - "num-rational 0.4.2", + "num-rational", "num-traits", "rand 0.8.5", "rand_distr", @@ -12124,10 +12239,19 @@ dependencies = [ ] [[package]] -name = "normalize-line-endings" +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "noop_proc_macro" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "notify" @@ -12190,7 +12314,7 @@ dependencies = [ "num-complex", "num-integer", "num-iter", - "num-rational 0.4.2", + "num-rational", "num-traits", ] @@ -12258,7 +12382,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ "arrayvec 0.7.6", - "itoa 1.0.15", + "itoa", ] [[package]] @@ -12296,17 +12420,6 @@ dependencies = [ "num-modular", ] -[[package]] -name = "num-rational" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" -dependencies = [ - "autocfg 1.3.0", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.4.2" @@ -12353,7 +12466,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 2.0.87", @@ -12391,9 +12504,6 @@ name = "objc-sys" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" -dependencies = [ - "cc", -] [[package]] name = "objc2" @@ -12412,6 +12522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" dependencies = [ "objc2-encode", + "objc2-exception-helper", ] [[package]] @@ -12421,13 +12532,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ "bitflags 2.9.1", - "block2", + "block2 0.5.1", "libc", "objc2 0.5.2", - "objc2-core-data", - "objc2-core-image", + "objc2-core-data 0.2.2", + "objc2-core-image 0.2.2", "objc2-foundation 0.2.2", - "objc2-quartz-core", + "objc2-quartz-core 0.2.2", ] [[package]] @@ -12437,44 +12548,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" dependencies = [ "bitflags 2.9.1", + "block2 0.6.1", + "libc", "objc2 0.6.1", + "objc2-cloud-kit", + "objc2-core-data 0.3.1", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image 0.3.1", "objc2-foundation 0.3.1", + "objc2-quartz-core 0.3.1", ] [[package]] name = "objc2-cloud-kit" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] -name = "objc2-contacts" +name = "objc2-core-data" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "block2", + "bitflags 2.9.1", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", ] [[package]] name = "objc2-core-data" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] @@ -12488,28 +12605,39 @@ dependencies = [ "objc2 0.6.1", ] +[[package]] +name = "objc2-core-graphics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" +dependencies = [ + "bitflags 2.9.1", + "dispatch2", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-io-surface", +] + [[package]] name = "objc2-core-image" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", "objc2-metal", ] [[package]] -name = "objc2-core-location" -version = "0.2.2" +name = "objc2-core-image" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" dependencies = [ - "block2", - "objc2 0.5.2", - "objc2-contacts", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] @@ -12518,6 +12646,15 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + [[package]] name = "objc2-foundation" version = "0.2.2" @@ -12525,7 +12662,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.9.1", - "block2", + "block2 0.5.1", "dispatch", "libc", "objc2 0.5.2", @@ -12538,113 +12675,116 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" dependencies = [ "bitflags 2.9.1", + "block2 0.6.1", + "libc", "objc2 0.6.1", "objc2-core-foundation", ] [[package]] -name = "objc2-link-presentation" -version = "0.2.2" +name = "objc2-io-kit" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" dependencies = [ - "block2", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "libc", + "objc2-core-foundation", ] [[package]] -name = "objc2-metal" -version = "0.2.2" +name = "objc2-io-surface" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-core-foundation", ] [[package]] -name = "objc2-quartz-core" +name = "objc2-javascript-core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9052cb1bb50a4c161d934befcf879526fb87ae9a68858f241e693ca46225cf5a" +dependencies = [ + "objc2 0.6.1", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-metal" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.9.1", - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", - "objc2-metal", ] [[package]] -name = "objc2-symbols" +name = "objc2-quartz-core" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", + "objc2-metal", ] [[package]] -name = "objc2-ui-kit" -version = "0.2.2" +name = "objc2-quartz-core" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", - "objc2-core-location", - "objc2-foundation 0.2.2", - "objc2-link-presentation", - "objc2-quartz-core", - "objc2-symbols", - "objc2-uniform-type-identifiers", - "objc2-user-notifications", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] -name = "objc2-uniform-type-identifiers" -version = "0.2.2" +name = "objc2-security" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +checksum = "e1f8e0ef3ab66b08c42644dcb34dba6ec0a574bbd8adbb8bdbdc7a2779731a44" dependencies = [ - "block2", - "objc2 0.5.2", - "objc2-foundation 0.2.2", + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", ] [[package]] -name = "objc2-user-notifications" -version = "0.2.2" +name = "objc2-ui-kit" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", ] [[package]] name = "objc2-web-kit" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" +checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad" dependencies = [ "bitflags 2.9.1", - "block2", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "block2 0.6.1", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", + "objc2-javascript-core", + "objc2-security", ] [[package]] @@ -12882,7 +13022,7 @@ checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" dependencies = [ "async-trait", "bytes", - "http 1.1.0", + "http 1.3.1", "opentelemetry", ] @@ -12894,12 +13034,12 @@ checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" dependencies = [ "async-trait", "futures-core", - "http 1.1.0", + "http 1.3.1", "opentelemetry", "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost", + "prost 0.13.5", "serde_json", "thiserror 1.0.63", "tokio", @@ -12916,7 +13056,7 @@ dependencies = [ "hex", "opentelemetry", "opentelemetry_sdk", - "prost", + "prost 0.13.5", "serde", "tonic", ] @@ -13032,7 +13172,7 @@ dependencies = [ "pkg-config", "sha2 0.10.8", "tar", - "ureq", + "ureq 2.12.1", ] [[package]] @@ -13062,16 +13202,6 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" -[[package]] -name = "ouroboros" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" -dependencies = [ - "aliasable", - "ouroboros_macro 0.15.6", -] - [[package]] name = "ouroboros" version = "0.18.5" @@ -13079,23 +13209,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59" dependencies = [ "aliasable", - "ouroboros_macro 0.18.5", + "ouroboros_macro", "static_assertions", ] -[[package]] -name = "ouroboros_macro" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" -dependencies = [ - "Inflector", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ouroboros_macro" version = "0.18.5" @@ -13253,9 +13370,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -13263,15 +13380,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall 0.5.3", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -13317,7 +13434,7 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "pathfinder_color" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "pathfinder_simd", ] @@ -13325,11 +13442,11 @@ dependencies = [ [[package]] name = "pathfinder_content" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "arrayvec 0.5.2", "bitflags 1.3.2", - "image 0.23.14", + "image 0.25.6", "log", "pathfinder_color", "pathfinder_geometry", @@ -13340,7 +13457,7 @@ dependencies = [ [[package]] name = "pathfinder_geometry" version = "0.5.1" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "log", "pathfinder_simd", @@ -13349,12 +13466,12 @@ dependencies = [ [[package]] name = "pathfinder_gpu" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "bitflags 1.3.2", "fxhash", "half 1.8.3", - "image 0.23.14", + "image 0.25.6", "instant", "log", "pathfinder_color", @@ -13366,7 +13483,7 @@ dependencies = [ [[package]] name = "pathfinder_renderer" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "bitflags 1.3.2", "byte-slice-cast", @@ -13394,12 +13511,12 @@ dependencies = [ [[package]] name = "pathfinder_resources" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" [[package]] name = "pathfinder_simd" -version = "0.5.4" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +version = "0.5.5" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "rustc_version 0.4.1", ] @@ -13407,7 +13524,7 @@ dependencies = [ [[package]] name = "pathfinder_ui" version = "0.5.0" -source = "git+https://github.com/servo/pathfinder#1b7c8bcdaf9da3f045af6a650b5f5c00f0c5a7eb" +source = "git+https://github.com/servo/pathfinder#3d0b936f4032435b9935e30850f830e89f751022" dependencies = [ "hashbrown 0.7.2", "pathfinder_color", @@ -13445,13 +13562,13 @@ dependencies = [ [[package]] name = "pdf" version = "0.9.0" -source = "git+https://github.com/pdf-rs/pdf#2eda40101944f78211b9725107e761203d6df375" +source = "git+https://github.com/pdf-rs/pdf#f87d3f5e90bddc9df8e0e144b06f2727e7afcc7e" dependencies = [ "aes", "bitflags 2.9.1", "cbc", "datasize", - "deflate 1.0.0", + "deflate", "fax", "globalcache 0.2.4", "indexmap 2.9.0", @@ -13473,7 +13590,7 @@ dependencies = [ [[package]] name = "pdf_derive" version = "0.2.0" -source = "git+https://github.com/pdf-rs/pdf#2eda40101944f78211b9725107e761203d6df375" +source = "git+https://github.com/pdf-rs/pdf#f87d3f5e90bddc9df8e0e144b06f2727e7afcc7e" dependencies = [ "proc-macro2", "quote", @@ -13500,16 +13617,16 @@ dependencies = [ [[package]] name = "pdf_render" version = "0.1.0" -source = "git+https://github.com/pdf-rs/pdf_render#9a31988b091495c65a54236fd6cdce8f1fa2afd0" +source = "git+https://github.com/pdf-rs/pdf_render#00b907936e45d904f958197fa6039320d0ac098d" dependencies = [ "custom_debug_derive", "font", "globalcache 0.3.2", "glyphmatcher", - "image 0.24.9", + "image 0.25.6", "instant", - "istring 0.4.2", - "itertools 0.14.0", + "istring 0.4.4", + "itertools 0.8.2", "log", "once_cell", "pathfinder_color", @@ -13528,9 +13645,9 @@ version = "0.1.0" source = "git+https://github.com/pdf-rs/pdf_text#fbe582d29ad4af5a4f84f6098352fcc033be6127" dependencies = [ "font", - "itertools 0.14.0", + "itertools 0.8.2", "log", - "ordered-float 5.0.0", + "ordered-float 2.10.1", "pathfinder_color", "pathfinder_content", "pathfinder_geometry", @@ -13573,6 +13690,16 @@ dependencies = [ "base64 0.13.1", ] +[[package]] +name = "pem" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +dependencies = [ + "base64 0.22.1", + "serde", +] + [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -13650,9 +13777,7 @@ 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]] @@ -13661,7 +13786,9 @@ 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]] @@ -13736,12 +13863,12 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", + "phf_generator 0.10.0", + "phf_shared 0.10.0", "proc-macro-hack", "proc-macro2", "quote", @@ -13898,18 +14025,6 @@ dependencies = [ "time 0.3.36", ] -[[package]] -name = "png" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "deflate 0.8.6", - "miniz_oxide 0.3.7", -] - [[package]] name = "png" version = "0.17.13" @@ -14012,16 +14127,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "predicates" -version = "2.1.5" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ - "difflib", - "float-cmp 0.9.0", - "itertools 0.10.5", - "normalize-line-endings", + "anstyle", "predicates-core", - "regex", ] [[package]] @@ -14214,6 +14325,19 @@ name = "profiling" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +dependencies = [ + "quote", + "syn 2.0.87", +] [[package]] name = "proptest" @@ -14253,7 +14377,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.13.5", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive 0.14.1", ] [[package]] @@ -14269,6 +14403,19 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "psl-types" version = "2.0.11" @@ -14358,6 +14505,16 @@ dependencies = [ "reborrow", ] +[[package]] +name = "puruspe" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69a530540df16fa0cfb1f5a7c26c4d24544a2a9fb94c60831afa776360782d98" +dependencies = [ + "lambert_w", + "num-complex", +] + [[package]] name = "qoi" version = "0.4.1" @@ -14373,6 +14530,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quick-xml" version = "0.26.0" @@ -14410,6 +14573,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + [[package]] name = "quickcheck" version = "0.8.5" @@ -14498,6 +14670,17 @@ dependencies = [ "scheduled-thread-pool", ] +[[package]] +name = "r2d2_sqlite" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180da684f0a188977d3968f139eb44260192ef8d9a5b7b7cbd01d881e0353179" +dependencies = [ + "r2d2", + "rusqlite", + "uuid 1.18.1", +] + [[package]] name = "radium" version = "0.7.0" @@ -14579,11 +14762,11 @@ dependencies = [ [[package]] name = "rand-utf8" -version = "0.0.1" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f2017cdc22f0f49fc0385c036847c03403fa5f95bc36e7f420e8e42446e80f" +checksum = "68bae41c9941c4969a9b9a054378451feff4fee65e8b8679ea3bed267ae36b9b" dependencies = [ - "rand 0.8.5", + "rand 0.9.1", ] [[package]] @@ -14793,6 +14976,56 @@ dependencies = [ "unicode-width 0.1.13", ] +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec 0.7.6", + "av1-grain", + "bitstream-io", + "built", + "cfg-if 1.0.0", + "interpolate_name", + "itertools 0.12.1", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand 0.8.5", + "rand_chacha 0.3.1", + "simd_helpers", + "system-deps", + "thiserror 1.0.63", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error 2.0.1", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-cpuid" version = "10.7.0" @@ -14854,7 +15087,7 @@ dependencies = [ [[package]] name = "rbert" version = "0.3.3" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -14876,13 +15109,27 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ - "pem", + "pem 1.1.1", "ring 0.16.20", "time 0.3.36", "yasna", "zeroize", ] +[[package]] +name = "rcgen" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +dependencies = [ + "pem 3.0.5", + "ring 0.17.14", + "rustls-pki-types", + "time 0.3.36", + "yasna", + "zeroize", +] + [[package]] name = "rdrand" version = "0.4.0" @@ -15134,7 +15381,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.4.6", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", @@ -15176,7 +15423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ "hostname 0.3.1", - "quick-error", + "quick-error 1.2.3", ] [[package]] @@ -15207,7 +15454,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8af382a047821a08aa6bfc09ab0d80ff48d45d8726f7cd8e44891f7cb4a4278e" dependencies = [ "ashpd", - "block2", + "block2 0.5.1", "glib-sys", "gobject-sys", "gtk-sys", @@ -15286,7 +15533,7 @@ dependencies = [ "rend", "rkyv_derive", "tinyvec", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -15803,7 +16050,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", - "quick-error", + "quick-error 1.2.3", "tempfile", "wait-timeout", ] @@ -15889,7 +16136,7 @@ dependencies = [ [[package]] name = "rwhisper" version = "0.3.5" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "accelerate-src", "byteorder", @@ -15915,7 +16162,7 @@ dependencies = [ [[package]] name = "rwuerstchen" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -15992,9 +16239,9 @@ dependencies = [ [[package]] name = "sbd-client" -version = "0.1.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1970bcf04f1a476f3f8d2188aaf51bca6197c0fa7072d7de0937d3cbc0a2eb6e" +checksum = "7d00f41338c3f61eb424696882b76128052fa5dd3db5d015ead03c785e637aa6" dependencies = [ "base64 0.22.1", "ed25519-dalek 2.1.1", @@ -16002,18 +16249,22 @@ dependencies = [ "rand 0.8.5", "rustls 0.23.27", "rustls-native-certs 0.8.1", + "serde", + "serde_json", "tokio", "tokio-rustls 0.26.0", - "tokio-tungstenite 0.23.1", + "tokio-tungstenite 0.27.0", "tracing", - "webpki-roots 0.26.5", + "ureq 3.0.3", + "url", + "webpki-roots 1.0.4", ] [[package]] name = "sbd-e2e-crypto-client" -version = "0.1.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2999cae35e0c66bf71fd57490f4bd807a33cbb9b351a440c0833755e33fd9308" +checksum = "d07b8f8a29790cc6024637c67337247f586c5db0ee4f9b6db3d4b5896e2a6d64" dependencies = [ "bytes", "sbd-client", @@ -16045,11 +16296,13 @@ dependencies = [ [[package]] name = "sbd-server" -version = "0.1.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887ad1b455b458233074122f1e0404182d9ddbd7b3008e0d153470f1133312bf" +checksum = "d038b96c91dd571e9b83c69725e55d8440fff3112448b82e10ef58d172e6ce67" dependencies = [ "anstyle", + "axum 0.8.4", + "axum-server", "base64 0.22.1", "bytes", "clap 4.5.38", @@ -16058,10 +16311,14 @@ dependencies = [ "rand 0.8.5", "rustls 0.23.27", "rustls-pemfile 2.1.3", + "serde", + "serde_json", "slab", "tokio", "tokio-rustls 0.26.0", - "tokio-tungstenite 0.23.1", + "tracing", + "tracing-subscriber 0.3.18", + "ureq 3.0.3", ] [[package]] @@ -16090,11 +16347,24 @@ checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "schemars_derive", + "schemars_derive 0.8.21", "serde", "serde_json", "url", - "uuid 1.10.0", + "uuid 1.18.1", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive 0.9.0", + "serde", + "serde_json", ] [[package]] @@ -16109,6 +16379,18 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "schemars_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5016d94c77c6d32f0b8e08b781f7dc8a90c2007d4e77472cc2807bc10a8438fe" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.87", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -16174,8 +16456,8 @@ dependencies = [ [[package]] name = "scryer-prolog" -version = "0.9.4" -source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m-hc-0.5#5b1c86974ba154d14e2982b10ef031a21eeabb6b" +version = "0.10.0" +source = "git+https://github.com/coasys/scryer-prolog?branch=ad4m#c2baf46f86195d23329f1296e4f8fa6a2f1b5d3d" dependencies = [ "arcu", "base64 0.22.1", @@ -16210,9 +16492,11 @@ dependencies = [ "native-tls", "num-order", "ordered-float 5.0.0", - "ouroboros 0.18.5", + "ouroboros", + "parking_lot", "phf 0.11.2", "proc-macro2", + "puruspe", "quote", "rand 0.8.5", "reqwest 0.11.20", @@ -16235,6 +16519,7 @@ dependencies = [ "to-syn-value", "to-syn-value_derive", "tokio", + "version_check", "walkdir", "warp", "wasm-bindgen", @@ -16358,7 +16643,7 @@ dependencies = [ [[package]] name = "segment-anything-rs" version = "0.3.2" -source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#1c2603fcc3bd89e5e93c47f8147e0168825b8378" +source = "git+https://github.com/coasys/floneum.git?branch=coasys-2#63130c9fec3aa062054d073b3ec55172eea5486c" dependencies = [ "candle-core", "candle-nn", @@ -16371,22 +16656,20 @@ dependencies = [ [[package]] name = "selectors" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" dependencies = [ "bitflags 1.3.2", - "cssparser 0.27.2", + "cssparser 0.29.6", "derive_more 0.99.18", "fxhash", "log", - "matches", "phf 0.8.0", "phf_codegen 0.8.0", "precomputed-hash", - "servo_arc 0.1.1", + "servo_arc 0.2.0", "smallvec", - "thin-slice", ] [[package]] @@ -16573,12 +16856,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "indexmap 2.9.0", - "itoa 1.0.15", + "itoa", "memchr", "ryu", "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +dependencies = [ + "itoa", + "serde", +] + [[package]] name = "serde_plain" version = "1.0.2" @@ -16618,6 +16911,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -16625,7 +16927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.15", + "itoa", "ryu", "serde", ] @@ -16680,7 +16982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap 2.9.0", - "itoa 1.0.15", + "itoa", "ryu", "serde", "unsafe-libyaml", @@ -16720,9 +17022,9 @@ dependencies = [ [[package]] name = "servo_arc" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" dependencies = [ "nodrop", "stable_deref_trait", @@ -16924,6 +17226,15 @@ dependencies = [ "value-trait", ] +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "simdutf8" version = "0.1.4" @@ -17081,7 +17392,7 @@ dependencies = [ "log", "objc2 0.5.2", "objc2-foundation 0.2.2", - "objc2-quartz-core", + "objc2-quartz-core 0.2.2", "raw-window-handle 0.6.2", "redox_syscall 0.5.3", "wasm-bindgen", @@ -17197,12 +17508,22 @@ checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" [[package]] name = "sqlformat" -version = "0.2.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" +checksum = "a0d7b3e8a3b6f2ee93ac391a0f757c13790caa0147892e3545cd549dd5b54bc0" +dependencies = [ + "unicode_categories", + "winnow 0.6.26", +] + +[[package]] +name = "sqlformat" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9f8dee7d9a112df6e28e14f9acd8f47487131d2a9cf9117037d2fad5936a796" dependencies = [ - "nom 7.1.3", "unicode_categories", + "winnow 0.7.13", ] [[package]] @@ -17357,12 +17678,6 @@ dependencies = [ "unicode-properties", ] -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - [[package]] name = "strsim" version = "0.10.0" @@ -17375,59 +17690,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "structmeta" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" -dependencies = [ - "proc-macro2", - "quote", - "structmeta-derive", - "syn 2.0.87", -] - -[[package]] -name = "structmeta-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap 2.34.0", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck 0.3.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "strum" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" - [[package]] name = "strum" version = "0.26.3" @@ -17446,18 +17708,6 @@ dependencies = [ "strum_macros 0.27.1", ] -[[package]] -name = "strum_macros" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "strum_macros" version = "0.26.4" @@ -18132,15 +18382,16 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.34.2" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2" +checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f" dependencies = [ "libc", "memchr", "ntapi", "objc2-core-foundation", - "windows 0.56.0", + "objc2-io-kit", + "windows 0.61.1", ] [[package]] @@ -18194,22 +18445,21 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "tao" -version = "0.30.8" +version = "0.34.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" dependencies = [ "bitflags 2.9.1", - "cocoa", + "block2 0.6.1", "core-foundation 0.10.0", "core-graphics 0.24.0", "crossbeam-channel 0.5.13", "dispatch", - "dlopen2 0.7.0", + "dlopen2 0.8.0", "dpi", "gdkwayland-sys", "gdkx11-sys", "gtk", - "instant", "jni", "lazy_static", "libc", @@ -18217,7 +18467,9 @@ dependencies = [ "ndk 0.9.0", "ndk-context", "ndk-sys 0.6.0+11769913", - "objc", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-foundation 0.3.1", "once_cell", "parking_lot", "raw-window-handle 0.6.2", @@ -18225,8 +18477,8 @@ dependencies = [ "tao-macros", "unicode-segmentation", "url", - "windows 0.58.0", - "windows-core 0.58.0", + "windows 0.61.1", + "windows-core 0.61.0", "windows-version", "x11-dl", ] @@ -18285,30 +18537,30 @@ dependencies = [ [[package]] name = "tauri" -version = "2.1.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e545de0a2dfe296fa67db208266cd397c5a55ae782da77973ef4c4fac90e9f2c" +checksum = "352a4bc7bf6c25f5624227e3641adf475a6535707451b09bb83271df8b7a6ac7" dependencies = [ "anyhow", "bytes", - "dirs 5.0.1", + "dirs 6.0.0", "dunce", "embed_plist", - "futures-util", - "getrandom 0.2.15", + "getrandom 0.3.3", "glob", "gtk", "heck 0.5.0", - "http 1.1.0", + "http 1.3.1", "image 0.25.6", "jni", "libc", "log", "mime", "muda", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-foundation 0.3.1", + "objc2-ui-kit", "percent-encoding", "plist", "raw-window-handle 0.6.2", @@ -18331,43 +18583,43 @@ dependencies = [ "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.58.0", + "windows 0.61.1", ] [[package]] name = "tauri-build" -version = "2.0.3" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01" +checksum = "a924b6c50fe83193f0f8b14072afa7c25b7a72752a2a73d9549b463f5fe91a38" dependencies = [ "anyhow", "cargo_toml", - "dirs 5.0.1", + "dirs 6.0.0", "glob", "heck 0.5.0", "json-patch 3.0.1", - "schemars", + "schemars 0.8.21", "semver 1.0.23", "serde", "serde_json", "tauri-utils", "tauri-winres", - "toml 0.8.19", + "toml 0.9.5", "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.0.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf" +checksum = "6c1fe64c74cc40f90848281a90058a6db931eb400b60205840e09801ee30f190" dependencies = [ "base64 0.22.1", - "brotli 7.0.0", + "brotli 8.0.2", "ico", "json-patch 3.0.1", "plist", - "png 0.17.13", + "png", "proc-macro2", "quote", "semver 1.0.23", @@ -18379,15 +18631,15 @@ dependencies = [ "thiserror 2.0.12", "time 0.3.36", "url", - "uuid 1.10.0", + "uuid 1.18.1", "walkdir", ] [[package]] name = "tauri-macros" -version = "2.0.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03" +checksum = "260c5d2eb036b76206b9fca20b7be3614cfd21046c5396f7959e0e64a4b07f2f" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -18399,18 +18651,18 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.3" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79" +checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d" dependencies = [ "anyhow", "glob", "plist", - "schemars", + "schemars 0.8.21", "serde", "serde_json", "tauri-utils", - "toml 0.8.19", + "toml 0.9.5", "walkdir", ] @@ -18457,7 +18709,7 @@ dependencies = [ "dunce", "glob", "percent-encoding", - "schemars", + "schemars 0.8.21", "serde", "serde_json", "serde_repr", @@ -18465,7 +18717,7 @@ dependencies = [ "tauri-plugin", "thiserror 1.0.63", "url", - "uuid 1.10.0", + "uuid 1.18.1", ] [[package]] @@ -18490,10 +18742,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c752aee1b00ec3c4d4f440095995d9bd2c640b478f2067d1fba388900b82eb96" dependencies = [ "data-url", - "http 1.1.0", + "http 1.3.1", "regex", "reqwest 0.12.9", - "schemars", + "schemars 0.8.21", "serde", "serde_json", "tauri", @@ -18526,23 +18778,23 @@ dependencies = [ [[package]] name = "tauri-plugin-opener" -version = "2.2.6" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fdc6cb608e04b7d2b6d1f21e9444ad49245f6d03465ba53323d692d1ceb1a30" +checksum = "ecee219f11cdac713ab32959db5d0cceec4810ba4f4458da992292ecf9660321" dependencies = [ "dunce", "glob", "objc2-app-kit 0.3.1", "objc2-foundation 0.3.1", "open 5.3.0", - "schemars", + "schemars 0.8.21", "serde", "serde_json", "tauri", "tauri-plugin", "thiserror 2.0.12", "url", - "windows 0.60.0", + "windows 0.61.1", "zbus 5.5.0", ] @@ -18600,7 +18852,7 @@ dependencies = [ "open 5.3.0", "os_pipe", "regex", - "schemars", + "schemars 0.8.21", "serde", "serde_json", "shared_child", @@ -18620,8 +18872,8 @@ dependencies = [ "dirs 5.0.1", "flate2", "futures-util", - "http 1.1.0", - "infer", + "http 1.3.1", + "infer 0.16.0", "minisign-verify", "percent-encoding", "reqwest 0.12.9", @@ -18642,36 +18894,43 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.2.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958" +checksum = "9368f09358496f2229313fccb37682ad116b7f46fa76981efe116994a0628926" dependencies = [ + "cookie", "dpi", "gtk", - "http 1.1.0", + "http 1.3.1", "jni", + "objc2 0.6.1", + "objc2-ui-kit", + "objc2-web-kit", "raw-window-handle 0.6.2", "serde", "serde_json", "tauri-utils", "thiserror 2.0.12", "url", - "windows 0.58.0", + "webkit2gtk", + "webview2-com", + "windows 0.61.1", ] [[package]] name = "tauri-runtime-wry" -version = "2.2.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2" +checksum = "929f5df216f5c02a9e894554401bcdab6eec3e39ec6a4a7731c7067fc8688a93" dependencies = [ "gtk", - "http 1.1.0", + "http 1.3.1", "jni", "log", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-foundation 0.3.1", + "once_cell", "percent-encoding", "raw-window-handle 0.6.2", "softbuffer", @@ -18681,24 +18940,25 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.58.0", + "windows 0.61.1", "wry", ] [[package]] name = "tauri-utils" -version = "2.1.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54" +checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673" dependencies = [ - "brotli 7.0.0", + "anyhow", + "brotli 8.0.2", "cargo_metadata", "ctor", "dunce", "glob", - "html5ever 0.26.0", - "http 1.1.0", - "infer", + "html5ever 0.29.1", + "http 1.3.1", + "infer 0.19.0", "json-patch 3.0.1", "kuchikiki", "log", @@ -18707,7 +18967,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "schemars", + "schemars 0.8.21", "semver 1.0.23", "serde", "serde-untagged", @@ -18715,21 +18975,22 @@ dependencies = [ "serde_with", "swift-rs", "thiserror 2.0.12", - "toml 0.8.19", + "toml 0.9.5", "url", "urlpattern", - "uuid 1.10.0", + "uuid 1.18.1", "walkdir", ] [[package]] name = "tauri-winres" -version = "0.1.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" dependencies = [ + "dunce", "embed-resource", - "toml 0.7.8", + "toml 0.9.5", ] [[package]] @@ -18792,18 +19053,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" -[[package]] -name = "test-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf41af45e3f54cc184831d629d41d5b2bda8297e29c81add7ae4f362ed5e01b" -dependencies = [ - "proc-macro2", - "quote", - "structmeta", - "syn 2.0.87", -] - [[package]] name = "text_lines" version = "0.6.0" @@ -18829,27 +19078,12 @@ dependencies = [ "url", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width 0.1.13", -] - [[package]] name = "textwrap" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" -[[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.63" @@ -18939,7 +19173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", - "itoa 1.0.15", + "itoa", "num-conv", "powerfmt", "serde", @@ -19173,29 +19407,29 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.27", - "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", - "tungstenite 0.23.0", + "tungstenite 0.26.2", ] [[package]] name = "tokio-tungstenite" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ "futures-util", "log", + "rustls 0.23.27", + "rustls-pki-types", "tokio", - "tungstenite 0.24.0", + "tokio-rustls 0.26.0", + "tungstenite 0.27.0", ] [[package]] @@ -19239,26 +19473,29 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", + "serde_spanned 0.6.7", + "toml_datetime 0.6.8", + "toml_edit 0.22.22", ] [[package]] name = "toml" -version = "0.8.19" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ + "indexmap 2.9.0", "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow 0.7.13", ] [[package]] @@ -19271,16 +19508,12 @@ dependencies = [ ] [[package]] -name = "toml_edit" -version = "0.19.15" +name = "toml_datetime" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" dependencies = [ - "indexmap 2.9.0", "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.40", ] [[package]] @@ -19290,7 +19523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap 2.9.0", - "toml_datetime", + "toml_datetime 0.6.8", "winnow 0.5.40", ] @@ -19302,11 +19535,26 @@ checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.9.0", "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", + "serde_spanned 0.6.7", + "toml_datetime 0.6.8", + "winnow 0.6.26", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow 0.7.13", ] +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tonic" version = "0.12.3" @@ -19315,11 +19563,11 @@ checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.7.9", "base64 0.22.1", "bytes", "h2 0.4.6", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", @@ -19327,7 +19575,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", + "prost 0.13.5", "socket2", "tokio", "tokio-stream", @@ -19382,7 +19630,7 @@ dependencies = [ "bitflags 2.9.1", "bytes", "futures-core", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "pin-project-lite", @@ -19416,6 +19664,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel 0.5.13", + "thiserror 1.0.63", + "time 0.3.36", + "tracing-subscriber 0.3.18", +] + [[package]] name = "tracing-attributes" version = "0.1.27" @@ -19479,6 +19739,16 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-serde" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -19498,7 +19768,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log 0.1.4", - "tracing-serde", + "tracing-serde 0.1.3", ] [[package]] @@ -19520,7 +19790,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log 0.2.0", - "tracing-serde", + "tracing-serde 0.1.3", ] [[package]] @@ -19546,23 +19816,24 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.19.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" +checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b" dependencies = [ - "core-graphics 0.24.0", "crossbeam-channel 0.5.13", - "dirs 5.0.1", + "dirs 6.0.0", "libappindicator", "muda", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.1", "once_cell", - "png 0.17.13", + "png", "serde", - "thiserror 1.0.63", - "windows-sys 0.59.0", + "thiserror 2.0.12", + "windows-sys 0.60.2", ] [[package]] @@ -19617,58 +19888,74 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.21.0" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.63", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "rand 0.8.5", "sha1", "thiserror 1.0.63", - "url", "utf-8", ] [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ - "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", - "rand 0.8.5", - "rustls 0.23.27", - "rustls-pki-types", + "rand 0.9.1", "sha1", - "thiserror 1.0.63", + "thiserror 2.0.12", "utf-8", ] [[package]] name = "tungstenite" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" dependencies = [ - "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", - "rand 0.8.5", + "rand 0.9.1", + "rustls 0.23.27", + "rustls-pki-types", "sha1", - "thiserror 1.0.63", + "thiserror 2.0.12", "utf-8", ] @@ -19698,15 +19985,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if 1.0.0", - "rand 0.8.5", + "rand 0.6.5", "static_assertions", ] [[package]] name = "tx5" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31ed1528a9ee8c869d64b21f956ec6fb14500c2e729f1fe5c4bf7d9fa6077f7" +checksum = "e315efb6b68ee94b908b25d66603eca3955ed911d6b10cde30215f3e7293f309" dependencies = [ "base64 0.22.1", "futures", @@ -19722,13 +20009,14 @@ dependencies = [ [[package]] name = "tx5-connection" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d8df60ad540a9f285cade403cf84b25a4ed8e8aeb30e55279856f9b68bc022" +checksum = "936326e832aabca29732d97d35fe8987f583c1d4f66d77f4fbfff32d0acc7248" dependencies = [ "bit_field", "datachannel", "futures", + "schemars 0.9.0", "serde", "serde_json", "tokio", @@ -19740,14 +20028,14 @@ dependencies = [ [[package]] name = "tx5-core" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c522fb70ab1702ee31677e999b954e5bcf544ad1e6d79ccd6d54da7a8d4c9483" +checksum = "a80f384611a49ca0f8bcbc17c7420a90a1096828b90eac4436caf646dd6e311f" dependencies = [ "app_dirs2", "base64 0.22.1", "once_cell", - "rand 0.8.5", + "rand 0.9.1", "serde", "serde_json", "sha2 0.10.8", @@ -19758,9 +20046,9 @@ dependencies = [ [[package]] name = "tx5-go-pion" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca373f98a8ff67ed9bc95331ebd0a7bad28fbed6a573fbb427043623763f6a4" +checksum = "34443a04893d69e5d19bbd2e7c19f5410522ab693f6da940e92410d745a56ea1" dependencies = [ "futures", "tokio", @@ -19770,29 +20058,29 @@ dependencies = [ [[package]] name = "tx5-go-pion-sys" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9848cbcb082af6ab8f07f9066df04a9830734bc5ef0ed53520641f4a3e88257" +checksum = "f2443b7dd1a6c51e7389e4be8870786a6a809cd322db4cd173e5bebf61227bcd" dependencies = [ "Inflector", "base64 0.22.1", "libc", "libloading 0.8.5", "once_cell", - "ouroboros 0.15.6", + "ouroboros", "sha2 0.10.8", "tracing", "tx5-core", - "zip 0.6.6", + "zip 4.6.1", ] [[package]] name = "tx5-signal" -version = "0.3.11" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da597849a6877e5e4118c729f8f0dbadab8c8f7312dff9f164a4ca2919a54ad" +checksum = "081d48fda6272c46ca81dd2079f3474c992c76d8e56762880601f1f01dff28d1" dependencies = [ - "rand 0.8.5", + "rand 0.9.1", "sbd-e2e-crypto-client", "tokio", "tracing", @@ -20147,6 +20435,37 @@ dependencies = [ "webpki-roots 0.26.5", ] +[[package]] +name = "ureq" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217751151c53226090391713e533d9a5e904ba2570dabaaace29032687589c3e" +dependencies = [ + "base64 0.22.1", + "cc", + "flate2", + "log", + "percent-encoding", + "rustls 0.23.27", + "rustls-pemfile 2.1.3", + "rustls-pki-types", + "ureq-proto", + "utf-8", + "webpki-roots 0.26.5", +] + +[[package]] +name = "ureq-proto" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" +dependencies = [ + "base64 0.22.1", + "http 1.3.1", + "httparse", + "log", +] + [[package]] name = "url" version = "2.5.4" @@ -20222,13 +20541,25 @@ dependencies = [ [[package]] name = "uuid" -version = "1.10.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.2.15", - "rand 0.8.5", + "getrandom 0.3.3", + "js-sys", + "rand 0.9.1", "serde", + "uuid-rng-internal", + "wasm-bindgen", +] + +[[package]] +name = "uuid-rng-internal" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23426b4394875bbc29a3074f94e1b52cd0eed2c8410c21a6edbfb033daef0aa1" +dependencies = [ + "getrandom 0.3.3", ] [[package]] @@ -20261,6 +20592,17 @@ dependencies = [ "wtf8", ] +[[package]] +name = "v_frame" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.0" @@ -20273,9 +20615,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" dependencies = [ - "float-cmp 0.10.0", + "float-cmp", "halfbrown", - "itoa 1.0.15", + "itoa", "ryu", ] @@ -20591,7 +20933,7 @@ dependencies = [ "target-lexicon 0.12.16", "thiserror 1.0.63", "tracing", - "ureq", + "ureq 2.12.1", "wasm-bindgen", "wasmer-compiler", "wasmer-compiler-cranelift", @@ -20853,7 +21195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1814af4572856a29a2d29a56520e86fda994423043b70139ce98e5a32e0d91be" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", "thiserror 2.0.12", "url", ] @@ -20952,6 +21294,15 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "webpki-roots" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webrtc-sdp" version = "0.3.13" @@ -20964,16 +21315,16 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" +checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.58.0", - "windows-core 0.58.0", - "windows-implement 0.58.0", - "windows-interface 0.58.0", + "windows 0.61.1", + "windows-core 0.61.0", + "windows-implement 0.60.0", + "windows-interface 0.59.1", ] [[package]] @@ -20989,13 +21340,13 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" +checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" dependencies = [ - "thiserror 1.0.63", - "windows 0.58.0", - "windows-core 0.58.0", + "thiserror 2.0.12", + "windows 0.61.1", + "windows-core 0.61.0", ] [[package]] @@ -21189,13 +21540,14 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window-vibrancy" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" dependencies = [ - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", "raw-window-handle 0.6.2", "windows-sys 0.59.0", "windows-version", @@ -21250,39 +21602,17 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" -dependencies = [ - "windows-collections 0.1.1", - "windows-core 0.60.1", - "windows-future 0.1.1", - "windows-link", - "windows-numerics 0.1.1", -] - [[package]] name = "windows" version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" dependencies = [ - "windows-collections 0.2.0", + "windows-collections", "windows-core 0.61.0", - "windows-future 0.2.0", - "windows-link", - "windows-numerics 0.2.0", -] - -[[package]] -name = "windows-collections" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec" -dependencies = [ - "windows-core 0.60.1", + "windows-future", + "windows-link 0.1.1", + "windows-numerics", ] [[package]] @@ -21338,19 +21668,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.60.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" -dependencies = [ - "windows-implement 0.59.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.2", - "windows-strings 0.3.1", -] - [[package]] name = "windows-core" version = "0.61.0" @@ -21359,21 +21676,11 @@ checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", - "windows-link", + "windows-link 0.1.1", "windows-result 0.3.2", "windows-strings 0.4.2", ] -[[package]] -name = "windows-future" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0" -dependencies = [ - "windows-core 0.60.1", - "windows-link", -] - [[package]] name = "windows-future" version = "0.2.0" @@ -21381,7 +21688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32" dependencies = [ "windows-core 0.61.0", - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -21406,17 +21713,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "windows-implement" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "windows-implement" version = "0.60.0" @@ -21468,14 +21764,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] -name = "windows-numerics" -version = "0.1.1" +name = "windows-link" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed" -dependencies = [ - "windows-core 0.60.1", - "windows-link", -] +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-numerics" @@ -21484,7 +21776,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.0", - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -21522,7 +21814,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -21535,22 +21827,13 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-strings" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -21602,6 +21885,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -21641,13 +21933,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows-version" version = "0.1.1" @@ -21675,6 +21984,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" @@ -21699,6 +22014,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.36.1" @@ -21723,12 +22044,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.36.1" @@ -21753,6 +22086,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" @@ -21777,6 +22116,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -21795,6 +22140,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" @@ -21819,6 +22170,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" version = "0.5.40" @@ -21830,18 +22187,18 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.6" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -21866,6 +22223,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.59.0", +] + [[package]] name = "winsafe" version = "0.0.19" @@ -21895,28 +22262,30 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wry" -version = "0.47.1" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8055a1afbf8c8cbeefbd7ae209b534e92334665460c0b876188c5deb37f3be4d" +checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2" dependencies = [ "base64 0.22.1", - "block2", + "block2 0.6.1", "cookie", "crossbeam-channel 0.5.13", + "dirs 6.0.0", "dpi", "dunce", "gdkx11", "gtk", - "html5ever 0.26.0", - "http 1.1.0", + "html5ever 0.29.1", + "http 1.3.1", "javascriptcore-rs", "jni", "kuchikiki", "libc", "ndk 0.9.0", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", "objc2-ui-kit", "objc2-web-kit", "once_cell", @@ -21925,13 +22294,13 @@ dependencies = [ "sha2 0.10.8", "soup3", "tao-macros", - "thiserror 1.0.63", + "thiserror 2.0.12", "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.58.0", - "windows-core 0.58.0", + "windows 0.61.1", + "windows-core 0.61.0", "windows-version", "x11-dl", ] @@ -22227,7 +22596,7 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.7.6", + "winnow 0.7.13", "xdg-home", "zbus_macros 5.5.0", "zbus_names 4.2.0", @@ -22281,7 +22650,7 @@ checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.7.6", + "winnow 0.7.13", "zvariant 5.4.0", ] @@ -22454,6 +22823,26 @@ dependencies = [ "zstd 0.13.3", ] +[[package]] +name = "zip" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" +dependencies = [ + "arbitrary", + "crc32fast", + "flate2", + "indexmap 2.9.0", + "memchr", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" + [[package]] name = "zopfli" version = "0.8.1" @@ -22563,7 +22952,7 @@ dependencies = [ "enumflags2", "serde", "static_assertions", - "winnow 0.7.6", + "winnow 0.7.13", "zvariant_derive 5.4.0", "zvariant_utils 3.2.0", ] @@ -22616,5 +23005,5 @@ dependencies = [ "serde", "static_assertions", "syn 2.0.87", - "winnow 0.7.6", + "winnow 0.7.13", ] diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock index 4c9663680..a50afc22a 100644 --- a/bootstrap-languages/agent-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -8,12 +8,13 @@ version = "0.0.1" dependencies = [ "agent_store_integrity", "chrono", - "derive_more", + "derive_more 0.99.20", + "getrandom", "hdk", "holo_hash", "holochain_serialized_bytes", "serde", - "thiserror 1.0.50", + "thiserror 1.0.69", ] [[package]] @@ -21,19 +22,14 @@ name = "agent_store_integrity" version = "0.0.1" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.20", "hdi", "hdk", + "holo_hash", "holochain_serialized_bytes", "serde", ] -[[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" @@ -45,21 +41,21 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "base64" @@ -69,9 +65,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", "arrayvec", @@ -89,9 +85,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -101,47 +97,46 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ - "libc", + "find-msvc-tools", + "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-link", ] [[package]] name = "colored" -version = "2.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "lazy_static", "windows-sys", ] [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -151,15 +146,15 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -176,9 +171,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -186,40 +181,61 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.110", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.110", + "unicode-xid", ] [[package]] @@ -234,15 +250,21 @@ dependencies = [ [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "find-msvc-tools" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "fnv" @@ -252,9 +274,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -267,9 +289,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -277,15 +299,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -294,38 +316,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -341,9 +363,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -351,31 +373,33 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasip2", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "hdi" -version = "0.6.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.7.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdk_derive", "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", + "holochain_serialized_bytes_derive", "holochain_wasmer_guest", "paste", "serde", @@ -386,8 +410,8 @@ dependencies = [ [[package]] name = "hdk" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdi", @@ -397,16 +421,14 @@ dependencies = [ "holochain_zome_types", "paste", "serde", - "serde_bytes", - "thiserror 1.0.50", "tracing", "tracing-core", ] [[package]] name = "hdk_derive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "darling", "heck", @@ -415,7 +437,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] @@ -426,25 +448,27 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "holo_hash" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64", "blake2b_simd", - "derive_more", + "derive_more 2.0.1", + "futures", "holochain_serialized_bytes", "holochain_util", "holochain_wasmer_common", + "must_future", "serde", "serde_bytes", "sha2", - "thiserror 1.0.50", + "thiserror 2.0.17", ] [[package]] name = "holochain_integrity_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holo_hash", "holochain_secure_primitive", @@ -459,8 +483,8 @@ dependencies = [ [[package]] name = "holochain_nonce" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "holochain_secure_primitive", @@ -469,8 +493,8 @@ dependencies = [ [[package]] name = "holochain_secure_primitive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "paste", "serde", @@ -480,7 +504,8 @@ dependencies = [ [[package]] name = "holochain_serialized_bytes" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad33bcab89bdceca5498f1b2fd5c4d1c07d35749deba965c2911494001845ac8" dependencies = [ "holochain_serialized_bytes_derive", "rmp-serde", @@ -488,22 +513,23 @@ dependencies = [ "serde-transcode", "serde_bytes", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "holochain_serialized_bytes_derive" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01865625f72d8b6a05487440dfce3c03b0fc83ae03bba7ed6bfbc2f6f8143d14" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "holochain_timestamp" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", "serde", @@ -511,8 +537,8 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "cfg-if", "colored", @@ -523,19 +549,21 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2246138152bef3637f773399fb7118527715f3d03bea85c442d299a518f2bfd1" dependencies = [ "holochain_serialized_bytes", "serde", "serde_bytes", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "holochain_wasmer_guest" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b408ee73bd97b4daeae9a420fe3c321063d0aeaeee08bbbb3f7d9ae25d6f87a4" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -546,10 +574,10 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "derive_more", + "derive_more 2.0.1", "holo_hash", "holochain_integrity_types", "holochain_nonce", @@ -558,21 +586,24 @@ dependencies = [ "holochain_wasmer_common", "serde", "serde_bytes", + "strum", + "strum_macros", "subtle", - "thiserror 1.0.50", + "thiserror 2.0.17", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", "windows-core", ] @@ -594,9 +625,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown", @@ -604,69 +635,74 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ + "once_cell", "wasm-bindgen", ] -[[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.155" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "log" -version = "0.4.20" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -700,22 +736,28 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rmp" version = "0.8.14" @@ -740,24 +782,30 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "semver" -version = "1.0.20" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" @@ -779,9 +827,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] @@ -794,52 +842,74 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap", "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.110", +] [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -848,15 +918,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", - "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.101" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -865,49 +934,49 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.50", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -916,20 +985,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -937,64 +1006,61 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] -name = "valuable" -version = "0.1.0" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "version_check" -version = "0.9.4" +name = "valuable" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "version_check" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "wasm-bindgen" -version = "0.2.89" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" +name = "wasm-bindgen" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ - "bumpalo", - "log", + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.101", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1002,158 +1068,160 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.101", - "wasm-bindgen-backend", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-targets 0.48.5", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-implement" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ - "windows-targets 0.48.5", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-interface" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] -name = "windows-targets" -version = "0.52.5" +name = "windows-link" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows-link", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_i686_gnu" -version = "0.48.5" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" diff --git a/bootstrap-languages/agent-language/hc-dna/build.sh b/bootstrap-languages/agent-language/hc-dna/build.sh index 7d83be6b0..7a73bd0ca 100755 --- a/bootstrap-languages/agent-language/hc-dna/build.sh +++ b/bootstrap-languages/agent-language/hc-dna/build.sh @@ -1,4 +1,4 @@ #!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +CARGO_TARGET_DIR=target RUSTFLAGS='--cfg getrandom_backend="custom"' cargo build --release --target wasm32-unknown-unknown hc dna pack workdir hc app pack workdir \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml index 06f64cea7..f7333fc39 100644 --- a/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml +++ b/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml @@ -1,5 +1,5 @@ --- -manifest_version: "1" +manifest_version: "0" name: "agent-store" integrity: @@ -7,10 +7,10 @@ integrity: properties: ~ zomes: - name: agent_store_integrity - bundled: ../target/wasm32-unknown-unknown/release/agent_store_integrity.wasm + path: ../target/wasm32-unknown-unknown/release/agent_store_integrity.wasm coordinator: zomes: - name: agent_store - bundled: ../target/wasm32-unknown-unknown/release/agent_store.wasm + path: ../target/wasm32-unknown-unknown/release/agent_store.wasm dependencies: - name: agent_store_integrity \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/workdir/happ.yaml b/bootstrap-languages/agent-language/hc-dna/workdir/happ.yaml index 0752f1a69..985083c7a 100644 --- a/bootstrap-languages/agent-language/hc-dna/workdir/happ.yaml +++ b/bootstrap-languages/agent-language/hc-dna/workdir/happ.yaml @@ -1,4 +1,4 @@ -manifest_version: '1' +manifest_version: '0' name: ad4m-agent-language description: Core bootstrap network for ad4m storing AgentExpressions per DID roles: @@ -7,5 +7,5 @@ roles: strategy: create deferred: false dna: - bundled: ./agent-store.dna + path: ./agent-store.dna \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml index 8a51e855e..257e39d0c 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -13,8 +13,12 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } thiserror = "1" +getrandom = { version = "0.3" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +agent_store_integrity = { path = "../agent_store_integrity" } + +[target.wasm32-unknown-unknown] +rustflags = ['--cfg', 'getrandom_backend="custom"'] \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs index a28845f20..4e7f5e1c2 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs @@ -6,16 +6,16 @@ pub(crate) fn err(reason: &str) -> WasmError { } pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { - let input = GetLinksInputBuilder::try_new( + let mut query = LinkQuery::try_new( base, LinkTypes::ProfileLink, - ) - .unwrap() - .tag_prefix(tag.unwrap()) - .get_options(GetStrategy::Network) - .build(); + )?; + + if let Some(t) = tag { + query = query.tag_prefix(t); + } - let profile_info = get_links(input)?; + let profile_info = get_links(query, GetStrategy::Network)?; // Find the latest let latest_info = diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml index 98b7c7173..67fc3b390 100644 --- a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -13,6 +13,7 @@ derive_more = "0" serde = "1.0.198" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = { version = "0.6.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} \ No newline at end of file +hdi = { version = "0.7.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock index a96e5a6b5..1715abb50 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 4 -[[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" @@ -19,21 +13,21 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "base64" @@ -43,9 +37,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", "arrayvec", @@ -63,9 +57,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byteorder" @@ -75,47 +69,46 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ - "libc", + "find-msvc-tools", + "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-link", ] [[package]] name = "colored" -version = "2.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "lazy_static", "windows-sys", ] [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -125,15 +118,15 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -150,9 +143,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -160,40 +153,61 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.110", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.110", + "unicode-xid", ] [[package]] @@ -211,8 +225,9 @@ name = "direct-message" version = "0.1.0" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.20", "direct-message-integrity", + "getrandom", "hdk", "hex", "holo_hash", @@ -226,7 +241,7 @@ name = "direct-message-integrity" version = "0.1.0" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.20", "hdi", "holo_hash", "holochain_serialized_bytes", @@ -235,15 +250,21 @@ dependencies = [ [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "find-msvc-tools" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "fnv" @@ -253,9 +274,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -268,9 +289,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -278,15 +299,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -295,38 +316,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -342,9 +363,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -352,31 +373,33 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasip2", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "hdi" -version = "0.6.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.7.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdk_derive", "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", + "holochain_serialized_bytes_derive", "holochain_wasmer_guest", "paste", "serde", @@ -387,8 +410,8 @@ dependencies = [ [[package]] name = "hdk" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdi", @@ -398,16 +421,14 @@ dependencies = [ "holochain_zome_types", "paste", "serde", - "serde_bytes", - "thiserror 1.0.50", "tracing", "tracing-core", ] [[package]] name = "hdk_derive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "darling", "heck", @@ -416,7 +437,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.110", ] [[package]] @@ -433,25 +454,27 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "holo_hash" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64", "blake2b_simd", - "derive_more", + "derive_more 2.0.1", + "futures", "holochain_serialized_bytes", "holochain_util", "holochain_wasmer_common", + "must_future", "serde", "serde_bytes", "sha2", - "thiserror 1.0.50", + "thiserror", ] [[package]] name = "holochain_integrity_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holo_hash", "holochain_secure_primitive", @@ -466,8 +489,8 @@ dependencies = [ [[package]] name = "holochain_nonce" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "holochain_secure_primitive", @@ -476,8 +499,8 @@ dependencies = [ [[package]] name = "holochain_secure_primitive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "paste", "serde", @@ -487,7 +510,8 @@ dependencies = [ [[package]] name = "holochain_serialized_bytes" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad33bcab89bdceca5498f1b2fd5c4d1c07d35749deba965c2911494001845ac8" dependencies = [ "holochain_serialized_bytes_derive", "rmp-serde", @@ -495,22 +519,23 @@ dependencies = [ "serde-transcode", "serde_bytes", "serde_json", - "thiserror 2.0.12", + "thiserror", ] [[package]] name = "holochain_serialized_bytes_derive" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01865625f72d8b6a05487440dfce3c03b0fc83ae03bba7ed6bfbc2f6f8143d14" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "holochain_timestamp" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", "serde", @@ -518,8 +543,8 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "cfg-if", "colored", @@ -530,19 +555,21 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2246138152bef3637f773399fb7118527715f3d03bea85c442d299a518f2bfd1" dependencies = [ "holochain_serialized_bytes", "serde", "serde_bytes", - "thiserror 2.0.12", + "thiserror", ] [[package]] name = "holochain_wasmer_guest" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b408ee73bd97b4daeae9a420fe3c321063d0aeaeee08bbbb3f7d9ae25d6f87a4" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -553,10 +580,10 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "derive_more", + "derive_more 2.0.1", "holo_hash", "holochain_integrity_types", "holochain_nonce", @@ -565,21 +592,24 @@ dependencies = [ "holochain_wasmer_common", "serde", "serde_bytes", + "strum", + "strum_macros", "subtle", - "thiserror 1.0.50", + "thiserror", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", "windows-core", ] @@ -601,9 +631,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown", @@ -611,69 +641,74 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ + "once_cell", "wasm-bindgen", ] -[[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.155" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "log" -version = "0.4.20" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "must_future" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -707,22 +742,28 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rmp" version = "0.8.14" @@ -747,24 +788,30 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "semver" -version = "1.0.20" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" @@ -786,9 +833,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] @@ -801,120 +848,121 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap", "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "subtle" -version = "2.5.0" +name = "strum" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" [[package]] -name = "syn" -version = "1.0.109" +name = "strum_macros" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ + "heck", "proc-macro2", "quote", - "unicode-ident", + "syn 2.0.110", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" -version = "2.0.101" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", - "quote", "unicode-ident", ] [[package]] -name = "thiserror" -version = "1.0.50" +name = "syn" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ - "thiserror-impl 1.0.50", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", + "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -923,20 +971,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.110", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -944,64 +992,61 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] -name = "valuable" -version = "0.1.0" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "version_check" -version = "0.9.4" +name = "valuable" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "version_check" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "wasm-bindgen" -version = "0.2.89" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" +name = "wasm-bindgen" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ - "bumpalo", - "log", + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.101", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1009,158 +1054,160 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.101", - "wasm-bindgen-backend", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-targets 0.48.5", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-implement" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ - "windows-targets 0.48.5", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-interface" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] -name = "windows-targets" -version = "0.52.5" +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows-link", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_i686_gnu" -version = "0.48.5" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" diff --git a/bootstrap-languages/direct-message-language/hc-dna/build.sh b/bootstrap-languages/direct-message-language/hc-dna/build.sh index 7d83be6b0..7a73bd0ca 100755 --- a/bootstrap-languages/direct-message-language/hc-dna/build.sh +++ b/bootstrap-languages/direct-message-language/hc-dna/build.sh @@ -1,4 +1,4 @@ #!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +CARGO_TARGET_DIR=target RUSTFLAGS='--cfg getrandom_backend="custom"' cargo build --release --target wasm32-unknown-unknown hc dna pack workdir hc app pack workdir \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml index 3fef1a011..fcee3c96c 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml +++ b/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml @@ -1,5 +1,5 @@ --- -manifest_version: 1 +manifest_version: 0 name: "direct-message-language" integrity: network_seed: 00000000-0000-0000-0000-000000000000 @@ -7,10 +7,10 @@ integrity: recipient_hc_agent_pubkey: "needs replacement through templating" zomes: - name: direct-message-integrity - bundled: ../target/wasm32-unknown-unknown/release/direct_message_integrity.wasm + path: ../target/wasm32-unknown-unknown/release/direct_message_integrity.wasm coordinator: zomes: - name: direct-message - bundled: ../target/wasm32-unknown-unknown/release/direct_message.wasm + path: ../target/wasm32-unknown-unknown/release/direct_message.wasm dependencies: - name: direct-message-integrity \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/workdir/happ.yaml b/bootstrap-languages/direct-message-language/hc-dna/workdir/happ.yaml index 5b18d40d3..f47e20554 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/workdir/happ.yaml +++ b/bootstrap-languages/direct-message-language/hc-dna/workdir/happ.yaml @@ -1,4 +1,4 @@ -manifest_version: '1' +manifest_version: '0' name: ad4m-direct-message-language description: Personal direct message network for ad4m agents roles: @@ -7,5 +7,5 @@ roles: strategy: create deferred: false dna: - bundled: ./direct-message-language.dna + path: ./direct-message-language.dna \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml index fb2e64b49..3dd8695e9 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -13,6 +13,6 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = { version = "0.6.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } +hdi = { version = "0.7.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml index d6dc4edfd..7c3cc5bbf 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -14,9 +14,13 @@ serde = "1.0.198" serde_json = "1" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } hex = "0.4.3" +getrandom = { version = "0.3" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } -direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file +direct-message-integrity = { path = "../direct-message-integrity" } + +[target.wasm32-unknown-unknown] +rustflags = ['--cfg', 'getrandom_backend="custom"'] \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs index 1bc09f987..6a128d878 100644 --- a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs @@ -10,7 +10,7 @@ use test_inspect::get_test_recipient; #[hdk_extern] fn init(_: ()) -> ExternResult { - let mut functions = BTreeSet::new(); + let mut functions = HashSet::new(); functions.insert(( ZomeName::from("direct-message"), "recv_remote_signal".into(), @@ -209,16 +209,13 @@ pub fn fetch_inbox(_: ()) -> ExternResult<()> { if Recipient(agent_info()?.agent_initial_pubkey) == recipient()? { //debug!("fetch_inbox agent"); //debug!("agent_address: {}", agent_address); - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( agent_address, LinkTypes::Message - ) - .unwrap() - .tag_prefix(LinkTag::new("message")) - .get_options(GetStrategy::Network) - .build(); + )? + .tag_prefix(LinkTag::new("message")); - for link in get_links(input)? { + for link in get_links(query, GetStrategy::Network)? { //debug!("fetch_inbox link"); if let Some(message_entry) = get( link.target @@ -231,7 +228,7 @@ pub fn fetch_inbox(_: ()) -> ExternResult<()> { let public_message = PublicMessage::try_from(message_entry)?; let message: PerspectiveExpression = public_message.into(); create_entry(EntryTypes::StoredMessage(StoredMessage(message)))?; - delete_link(link.create_link_hash)?; + delete_link(link.create_link_hash, GetOptions::network())?; delete_entry(header_address)?; } else { error!("Message linked in inbox not retrievable") diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock index bc3f255b0..9e8a1e0b5 100644 --- a/bootstrap-languages/file-storage/hc-dna/Cargo.lock +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -103,11 +103,10 @@ dependencies = [ [[package]] name = "colored" -version = "2.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "lazy_static", "windows-sys", ] @@ -150,9 +149,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -160,27 +159,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -196,6 +195,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", + "unicode-xid", +] + [[package]] name = "digest" version = "0.10.7" @@ -223,7 +243,8 @@ name = "file_storage" version = "0.1.0" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.17", + "getrandom", "hdk", "holo_hash", "holochain_serialized_bytes", @@ -341,13 +362,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasip2", ] [[package]] @@ -358,14 +380,15 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hdi" -version = "0.6.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.7.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdk_derive", "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", + "holochain_serialized_bytes_derive", "holochain_wasmer_guest", "paste", "serde", @@ -376,8 +399,8 @@ dependencies = [ [[package]] name = "hdk" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdi", @@ -387,16 +410,14 @@ dependencies = [ "holochain_zome_types", "paste", "serde", - "serde_bytes", - "thiserror 1.0.50", "tracing", "tracing-core", ] [[package]] name = "hdk_derive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "darling", "heck", @@ -405,7 +426,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -416,25 +437,27 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "holo_hash" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64", "blake2b_simd", - "derive_more", + "derive_more 2.0.1", + "futures", "holochain_serialized_bytes", "holochain_util", "holochain_wasmer_common", + "must_future", "serde", "serde_bytes", "sha2", - "thiserror 1.0.50", + "thiserror 2.0.12", ] [[package]] name = "holochain_integrity_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holo_hash", "holochain_secure_primitive", @@ -449,8 +472,8 @@ dependencies = [ [[package]] name = "holochain_nonce" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "holochain_secure_primitive", @@ -459,8 +482,8 @@ dependencies = [ [[package]] name = "holochain_secure_primitive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "paste", "serde", @@ -470,7 +493,8 @@ dependencies = [ [[package]] name = "holochain_serialized_bytes" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad33bcab89bdceca5498f1b2fd5c4d1c07d35749deba965c2911494001845ac8" dependencies = [ "holochain_serialized_bytes_derive", "rmp-serde", @@ -484,7 +508,8 @@ dependencies = [ [[package]] name = "holochain_serialized_bytes_derive" version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01865625f72d8b6a05487440dfce3c03b0fc83ae03bba7ed6bfbc2f6f8143d14" dependencies = [ "quote", "syn 2.0.101", @@ -492,8 +517,8 @@ dependencies = [ [[package]] name = "holochain_timestamp" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", "serde", @@ -501,8 +526,8 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "cfg-if", "colored", @@ -513,8 +538,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_common" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2246138152bef3637f773399fb7118527715f3d03bea85c442d299a518f2bfd1" dependencies = [ "holochain_serialized_bytes", "serde", @@ -524,8 +550,9 @@ dependencies = [ [[package]] name = "holochain_wasmer_guest" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" +version = "0.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b408ee73bd97b4daeae9a420fe3c321063d0aeaeee08bbbb3f7d9ae25d6f87a4" dependencies = [ "holochain_serialized_bytes", "holochain_wasmer_common", @@ -536,10 +563,10 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "derive_more", + "derive_more 2.0.1", "holo_hash", "holochain_integrity_types", "holochain_nonce", @@ -548,8 +575,10 @@ dependencies = [ "holochain_wasmer_common", "serde", "serde_bytes", + "strum", + "strum_macros", "subtle", - "thiserror 1.0.50", + "thiserror 2.0.12", "tracing", ] @@ -597,7 +626,8 @@ name = "integrity" version = "0.1.0" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.17", + "getrandom", "hdi", "hdk", "holo_hash", @@ -613,10 +643,11 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -632,18 +663,22 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - [[package]] name = "memchr" version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + [[package]] name = "num-traits" version = "0.2.17" @@ -719,6 +754,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rmp" version = "0.8.14" @@ -750,6 +791,12 @@ dependencies = [ "semver", ] +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "ryu" version = "1.0.15" @@ -834,9 +881,27 @@ dependencies = [ [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.101", +] [[package]] name = "subtle" @@ -950,6 +1015,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "valuable" version = "0.1.0" @@ -963,41 +1034,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[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.89" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" +name = "wasm-bindgen" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ - "bumpalo", - "log", + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.101", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1005,22 +1067,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn 2.0.101", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "windows-core" @@ -1160,3 +1225,9 @@ name = "windows_x86_64_msvc" version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" diff --git a/bootstrap-languages/file-storage/hc-dna/build.sh b/bootstrap-languages/file-storage/hc-dna/build.sh index a089cc772..e66d1035d 100755 --- a/bootstrap-languages/file-storage/hc-dna/build.sh +++ b/bootstrap-languages/file-storage/hc-dna/build.sh @@ -1,3 +1,3 @@ #!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +CARGO_TARGET_DIR=target RUSTFLAGS='--cfg getrandom_backend="custom"' cargo build --release --target wasm32-unknown-unknown hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml b/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml index 861151832..8dcf20bbc 100644 --- a/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml +++ b/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml @@ -1,12 +1,12 @@ -manifest_version: '1' +manifest_version: '0' name: file-storage integrity: network_seed: 00000000-0000-0000-0000-000000000000 properties: null zomes: - name: integrity - bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm + path: ../target/wasm32-unknown-unknown/release/integrity.wasm coordinator: zomes: - name: file_storage - bundled: ../target/wasm32-unknown-unknown/release/file_storage.wasm \ No newline at end of file + path: ../target/wasm32-unknown-unknown/release/file_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml index 909dfcbca..44ec392ef 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -17,7 +17,11 @@ chrono = { version = "0.4.38", default-features = false, features = ["clock", "s thiserror = "1" integrity = { path = "../integrity" } sha2 = "0.10.5" +getrandom = { version = "0.3" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } \ No newline at end of file +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } + +[target.wasm32-unknown-unknown] +rustflags = ['--cfg', 'getrandom_backend="custom"'] \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml index c9b1c4598..07c33cfce 100644 --- a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -13,8 +13,12 @@ name = "integrity" derive_more = "0" serde = "1" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +getrandom = { version = "0.3" } -hdi = { version = "0.6.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } \ No newline at end of file +hdi = { version = "0.7.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_serialized_bytes = "=0.0.56" +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } + +[target.wasm32-unknown-unknown] +rustflags = ['--cfg', 'getrandom_backend="custom"'] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/.gitignore b/bootstrap-languages/p-diff-sync-socket-signaling/.gitignore deleted file mode 100644 index fec3181ae..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.cargo -target -hc-dna/workdir/perspective-diff-sync.dna -hc-dna/zomes/tests/node_modules -hc-dna/zomes/tests/out.log -node_modules -.hc* -perspect-diff-sync.dna -*.log -.turbo - -*.js -*.js.map -!rollup.config* -!dna.js -build/dna.js -!integration-test.js -!customHttpDownloader.js - -.ad4m-test -ad4m-test-* \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/README.md b/bootstrap-languages/p-diff-sync-socket-signaling/README.md deleted file mode 100644 index dadc2cd48..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Perspective Diff Sync - -Git like holochain syncing DNA for sharing of mutation to a shared perspective. \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/customHttpDownloader.js b/bootstrap-languages/p-diff-sync-socket-signaling/customHttpDownloader.js deleted file mode 100644 index d4070dd10..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/customHttpDownloader.js +++ /dev/null @@ -1,72 +0,0 @@ -let setup = ({onResolve, onLoad}) => { - onResolve({filter: /^https:\/\/github.com/}, resolveFile) - onResolve({filter: /.*/, namespace: 'http-fetch'}, resolveUrl) - onLoad({filter: /.*/, namespace: 'http-fetch'}, loadSource) -} - -let resolveFile = ({path}) => { - return { - path: path, - namespace: 'http-fetch' - } -} - -export let resolveUrl = ({path, importer}) => { - return { - path: new URL(path, importer).href, - namespace: 'imports' - } -} - -export let loadSource = async ({path}) => { - let source; - if (path.includes('perspect3vism')) { - const commit = path.split("#"); - - const url = `${commit[0].replace("https://github.com", "https://raw.githubusercontent.com")}/${commit[1]}/lib/bundle.js` - - path = url; - } - - source = await fetch(path) - - if (!source.ok) { - let message = `GET ${path} failed: status ${source.status}` - throw new Error(message) - } - - let contents = await source.text() - let pattern = /\/\/# sourceMappingURL=(\S+)/ - let match = contents.match(pattern) - if (match) { - let url = new URL(match[1], source.url) - let dataurl = await loadMap(url) - let comment = `//# sourceMappingURL=${dataurl}` - contents = contents.replace(pattern, comment) - } - - - - let {pathname} = new URL(source.url) - let loader = pathname.match(/[^.]+$/)[0] - - loader = loader === 'mjs' ? 'js' : loader - return {contents, loader} -} - -let loadMap = async url => { - let map = await fetch(url) - let type = map.headers.get('content-type').replace(/\s/g, '') - let buffer = await map.arrayBuffer() - let blob = new Blob([buffer], {type}) - let reader = new FileReader() - return new Promise(cb => { - reader.onload = e => cb(e.target.result) - reader.readAsDataURL(blob) - }) -} - -export default { - name: "custom-http-fetch", - setup -}; \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/dna.js b/bootstrap-languages/p-diff-sync-socket-signaling/dna.js deleted file mode 100644 index 4bb2f7cf2..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/dna.js +++ /dev/null @@ -1,5 +0,0 @@ -import dna from "./hc-dna/workdir/perspective-diff-sync.dna"; - -export const DNA = Buffer.from(dna, "base64"); -export const DNA_NICK = "perspective-diff-sync"; -export const ZOME_NAME = "perspective_diff_sync"; \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/esbuild.ts b/bootstrap-languages/p-diff-sync-socket-signaling/esbuild.ts deleted file mode 100644 index e479a51dd..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/esbuild.ts +++ /dev/null @@ -1,39 +0,0 @@ -import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/mod.js"; -// Import the WASM build on platforms where running subprocesses is not -// permitted, such as Deno Deploy, or when running without `--allow-run`. -// import * as esbuild from "https://deno.land/x/esbuild@v0.17.18/wasm.js"; - -import { denoPlugins } from "https://deno.land/x/esbuild_deno_loader@0.7.0/mod.ts"; -import { loadSource, resolveUrl } from "./customHttpDownloader.js"; - -const result = await esbuild.build({ - plugins: [ - { - name: `buffer-alias`, - setup(build) { - build.onResolve({ filter: new RegExp(`^buffer$`) }, (args) => { - return { path: `https://deno.land/std@0.177.0/node/buffer.ts`, namespace: 'imports' }; - }); - - build.onResolve({filter: /.*/, namespace: 'imports'}, resolveUrl) - - build.onLoad({filter: /.*/, namespace: 'imports'}, (args) => { - return loadSource(args) - }) - }, - }, - ...denoPlugins() - ], - entryPoints: ['index.ts'], - outfile: 'build/bundle.js', - bundle: true, - platform: 'node', - target: 'deno1.32.4', - format: 'esm', - globalName: 'perspective.diff.sync.language', - charset: 'ascii', - legalComments: 'inline' -}); -console.log(result.outputFiles); - -esbuild.stop(); \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.lock deleted file mode 100644 index 91b64519f..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.lock +++ /dev/null @@ -1,1424 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[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 = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[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 = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] - -[[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.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "serde", - "windows-targets 0.52.0", -] - -[[package]] -name = "colored" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" -dependencies = [ - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpufeatures" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" -dependencies = [ - "libc", -] - -[[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 = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "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 = "dot-generator" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322e00783838d540a6288c25ae085983750521fb8cca82fc653eb2457c369565" -dependencies = [ - "dot-structures", -] - -[[package]] -name = "dot-generator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aaac7ada45f71873ebce336491d1c1bc4a7c8042c7cea978168ad59e805b871" -dependencies = [ - "dot-structures", -] - -[[package]] -name = "dot-structures" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675e35c02a51bb4d4618cb4885b3839ce6d1787c97b664474d9208d074742e20" - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[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.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[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.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "graphviz-rust" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a478d6485a680dcea01e3deba796c01866d63dabf06a20df4f969aaa1bac3f43" -dependencies = [ - "dot-generator 0.2.0", - "dot-structures", - "into-attr", - "into-attr-derive", - "pest", - "pest_derive", - "rand", - "tempfile", -] - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[package]] -name = "hdi" -version = "0.6.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "getrandom", - "hdk_derive", - "holo_hash", - "holochain_integrity_types", - "holochain_serialized_bytes", - "holochain_wasmer_guest", - "paste", - "serde", - "serde_bytes", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "getrandom", - "hdi", - "hdk_derive", - "holo_hash", - "holochain_wasmer_guest", - "holochain_zome_types", - "paste", - "serde", - "serde_bytes", - "thiserror 1.0.50", - "tracing", - "tracing-core", -] - -[[package]] -name = "hdk_derive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "darling", - "heck", - "holochain_integrity_types", - "paste", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "holo_hash" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "base64", - "blake2b_simd", - "derive_more", - "holochain_serialized_bytes", - "holochain_util", - "holochain_wasmer_common", - "serde", - "serde_bytes", - "sha2", - "thiserror 1.0.50", -] - -[[package]] -name = "holochain_integrity_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "holo_hash", - "holochain_secure_primitive", - "holochain_serialized_bytes", - "holochain_timestamp", - "holochain_util", - "serde", - "serde_bytes", - "subtle", - "tracing", -] - -[[package]] -name = "holochain_nonce" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "getrandom", - "holochain_secure_primitive", - "holochain_timestamp", -] - -[[package]] -name = "holochain_secure_primitive" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "paste", - "serde", - "subtle", -] - -[[package]] -name = "holochain_serialized_bytes" -version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" -dependencies = [ - "holochain_serialized_bytes_derive", - "rmp-serde", - "serde", - "serde-transcode", - "serde_bytes", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "holochain_serialized_bytes_derive" -version = "0.0.56" -source = "git+https://github.com/holochain/holochain-serialization#2bad99994d89fb8e22699fd9e4f753f615d5ea74" -dependencies = [ - "quote", - "syn 2.0.101", -] - -[[package]] -name = "holochain_timestamp" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "chrono", - "serde", -] - -[[package]] -name = "holochain_util" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "cfg-if", - "colored", - "dunce", - "futures", - "once_cell", -] - -[[package]] -name = "holochain_wasmer_common" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" -dependencies = [ - "holochain_serialized_bytes", - "serde", - "serde_bytes", - "thiserror 2.0.12", -] - -[[package]] -name = "holochain_wasmer_guest" -version = "0.0.99" -source = "git+https://github.com/coasys/holochain-wasmer.git?branch=0.0.99-coasys#2cf0208e2f78d4e487f9a1cbe1a657ff9668af1d" -dependencies = [ - "holochain_serialized_bytes", - "holochain_wasmer_common", - "paste", - "serde", - "tracing", -] - -[[package]] -name = "holochain_zome_types" -version = "0.5.2" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.2-coasys#3bd25fa4183f9ace9b26580bf8c68a08de95bd44" -dependencies = [ - "derive_more", - "holo_hash", - "holochain_integrity_types", - "holochain_nonce", - "holochain_serialized_bytes", - "holochain_timestamp", - "holochain_wasmer_common", - "serde", - "serde_bytes", - "subtle", - "thiserror 1.0.50", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[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 = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "into-attr" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18b48c537e49a709e678caec3753a7dba6854661a1eaa27675024283b3f8b376" -dependencies = [ - "dot-structures", -] - -[[package]] -name = "into-attr-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b88c3c684271aa7810934ae69a0b904c59f478cb551f3f388cc1c384f0c3145" -dependencies = [ - "dot-generator 0.1.0", - "dot-structures", - "into-attr", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "js-sys" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" -dependencies = [ - "wasm-bindgen", -] - -[[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.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "linux-raw-sys" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "perspective_diff_sync" -version = "0.0.1" -dependencies = [ - "chrono", - "derive_more", - "dot-structures", - "graphviz-rust", - "hdk", - "holo_hash", - "holochain_serialized_bytes", - "itertools", - "lazy_static", - "maplit", - "perspective_diff_sync_integrity", - "petgraph", - "serde", - "sha2", - "thiserror 1.0.50", -] - -[[package]] -name = "perspective_diff_sync_integrity" -version = "0.0.1" -dependencies = [ - "chrono", - "derive_more", - "hdi", - "hdk", - "holo_hash", - "holochain_serialized_bytes", - "serde", -] - -[[package]] -name = "pest" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" -dependencies = [ - "memchr", - "thiserror 1.0.50", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "pest_meta" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[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-macro2" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[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", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "rmp" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[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.38.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" -dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-transcode" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[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.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl 1.0.50", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[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.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.101", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" - -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.toml b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.toml deleted file mode 100644 index 8d651e6a5..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[workspace] -members = [ - "zomes/perspective_diff_sync", - "zomes/perspective_diff_sync_integrity" -] -resolver="2" - -[profile.dev] -opt-level = "z" - -[profile.release] -opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.ps1 b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.ps1 deleted file mode 100644 index 81582cbd3..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.sh b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.sh deleted file mode 100755 index a089cc772..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown -hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/default.nix b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/default.nix deleted file mode 100644 index 33f97a914..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -let - holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository - holonix = import (holonixPath) { - holochainVersionId = "main"; - }; - nixpkgs = holonix.pkgs; -in nixpkgs.mkShell { - inputsFrom = [ holonix.main ]; - packages = with nixpkgs; [ - binaryen - nodejs-16_x - swiProlog - ]; -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/holochain_version.nix b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/holochain_version.nix deleted file mode 100644 index acfe9651f..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/holochain_version.nix +++ /dev/null @@ -1,20 +0,0 @@ -# This file was generated with the following command: -# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix -# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme - -{ - url = "https://github.com/holochain/holochain"; - rev = "holochain-0.2.2"; - sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; - cargoLock = { - outputHashes = { - }; - }; - - binsFilter = [ - "holochain" - "hc" - "kitsune-p2p-proxy" - "kitsune-p2p-tx2-proxy" - ]; -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.json b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.json deleted file mode 100644 index 451563814..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "holonix": { - "branch": "main", - "description": "NixOS && Holochain", - "homepage": "", - "owner": "holochain", - "repo": "holonix", - "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", - "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", - "type": "tarball", - "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.nix b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.nix deleted file mode 100644 index fe2468872..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/nix/sources.nix +++ /dev/null @@ -1,174 +0,0 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; name = name'; } - else - pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; - - fetch_tarball = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchTarball { name = name'; inherit (spec) url sha256; } - else - pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; - - fetch_git = name: spec: - let - ref = - if spec ? ref then spec.ref else - if spec ? branch then "refs/heads/${spec.branch}" else - if spec ? tag then "refs/tags/${spec.tag}" else - abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; - in - builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; - - fetch_local = spec: spec.path; - - fetch_builtin-tarball = name: throw - ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=tarball -a builtin=true''; - - fetch_builtin-url = name: throw - ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=file -a builtin=true''; - - # - # Various helpers - # - - # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 - sanitizeName = name: - ( - concatMapStrings (s: if builtins.isList s then "-" else s) - ( - builtins.split "[^[:alnum:]+._?=-]+" - ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) - ) - ); - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: system: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import {} - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs name spec - else if spec.type == "tarball" then fetch_tarball pkgs name spec - else if spec.type == "git" then fetch_git name spec - else if spec.type == "local" then fetch_local spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball name - else if spec.type == "builtin-url" then fetch_builtin-url name - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # If the environment variable NIV_OVERRIDE_${name} is set, then use - # the path directly as opposed to the fetched source. - replace = name: drv: - let - saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; - ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; - in - if ersatz == "" then drv else - # this turns the string into an actual Nix path (for both absolute and - # relative paths) - if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 - range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 - stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 - stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); - concatStrings = builtins.concatStringsSep ""; - - # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 - optionalAttrs = cond: as: if cond then as else {}; - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs ( - name: spec: - if builtins.hasAttr "outPath" spec - then abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = replace name (fetch config.pkgs name spec); } - ) config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null - , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) - , system ? builtins.currentSystem - , pkgs ? mkPkgs sources system - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; - -in -mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/workdir/dna.yaml b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/workdir/dna.yaml deleted file mode 100644 index 75dddd236..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/workdir/dna.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -manifest_version: 1 -name: "perspective-diff-sync" -integrity: - network_seed: 00000000-0000-0000-0000-000000000000 - properties: { - "enforce_spam_limit": 20, - "max_chunk_interval": 3599000, - "active_agent_duration_s": 300, - "enable_signals": true - } - zomes: - - name: perspective_diff_sync_integrity - bundled: ../target/wasm32-unknown-unknown/release/perspective_diff_sync_integrity.wasm -coordinator: - zomes: - - name: perspective_diff_sync - bundled: ../target/wasm32-unknown-unknown/release/perspective_diff_sync.wasm - dependencies: - - name: perspective_diff_sync_integrity \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/Cargo.toml deleted file mode 100644 index 0d42a188f..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -authors = ["josh@junto.foundation"] -edition = "2021" -name = "perspective_diff_sync" -version = "0.0.1" - -[lib] -crate-type = ["cdylib", "rlib"] -name = "perspective_diff_sync" - -[dependencies] -derive_more = "0" -serde = "1" -lazy_static = "*" -chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -thiserror = "1" -petgraph = "0.6.2" -maplit = "1.0.2" -graphviz-rust = "0.2.1" -dot-structures = "0.1.0" -itertools = "0.10.3" -perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } -sha2 = "0.10.5" - - -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } - -[features] -test = [] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/errors.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/errors.rs deleted file mode 100644 index 9060d01cb..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/errors.rs +++ /dev/null @@ -1,25 +0,0 @@ -use hdk::prelude::*; -use holo_hash::HoloHashError; -use std::convert::Infallible; - -#[derive(thiserror::Error, Debug)] -pub enum SocialContextError { - #[error(transparent)] - Serialization(#[from] SerializedBytesError), - #[error(transparent)] - Infallible(#[from] Infallible), - #[error(transparent)] - EntryError(#[from] EntryError), - #[error(transparent)] - Wasm(#[from] WasmError), - #[error(transparent)] - HoloHashError(#[from] HoloHashError), - #[error("Internal Error. Error: {0}")] - InternalError(&'static str), - #[error("No common ancestor found")] - NoCommonAncestorFound, - #[error("No did found")] - NoDidFound, -} - -pub type SocialContextResult = Result; diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/inputs.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/inputs.rs deleted file mode 100644 index 403cc7f92..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/inputs.rs +++ /dev/null @@ -1,29 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::PerspectiveExpression; - -use crate::Hash; - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq, Eq, Hash)] -pub struct ExpressionProof { - pub signature: String, - pub key: String, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq, Eq, Hash)] -pub struct Triple { - pub source: Option, - pub target: Option, - pub predicate: Option, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] -pub struct SignalData { - pub remote_agent_did: String, - pub payload: PerspectiveExpression, -} - -#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] -pub struct PullArguments { - pub hash: Hash, - pub is_scribe: bool, -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/lib.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/lib.rs deleted file mode 100644 index e837a592b..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/lib.rs +++ /dev/null @@ -1,195 +0,0 @@ -#[macro_use] -extern crate lazy_static; - -use hdk::prelude::*; -use inputs::PullArguments; -use lazy_static::lazy_static; - -use perspective_diff_sync_integrity::{ - HashBroadcast, OnlineAgent, OnlineAgentAndAction, Perspective, PerspectiveDiff, - PerspectiveExpression, PullResult, -}; - -mod errors; -mod inputs; -mod link_adapter; -mod retriever; -mod telepresence; -mod utils; - -#[macro_use] -extern crate maplit; - -pub type Hash = HoloHash; - -#[hdk_extern] -fn init(_: ()) -> ExternResult { - let mut functions = BTreeSet::new(); - functions.insert((zome_info()?.name, "get_online_status".into())); - //TODO; is this next function needed? - functions.insert((zome_info()?.name, "recv_remote_signal".into())); - - let functions: GrantedFunctions = GrantedFunctions::Listed(functions); - - create_cap_grant(CapGrantEntry { - tag: "".into(), - // empty access converts to unrestricted - access: ().into(), - functions, - })?; - link_adapter::commit::add_active_agent_link::() - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(InitCallbackResult::Pass) -} - -/// LinkLanguage implementation - -#[hdk_extern] -pub fn commit(diff: PerspectiveDiff) -> ExternResult { - link_adapter::commit::commit::(diff) - .map_err(|error| utils::err(&format!("{}", error))) -} - -#[hdk_extern] -pub fn current_revision(_: ()) -> ExternResult> { - link_adapter::revisions::current_revision::() - .map_err(|error| utils::err(&format!("{}", error))) - .map(|val| val.map(|val| val.hash)) -} - -#[hdk_extern] -pub fn sync(_: ()) -> ExternResult> { - link_adapter::commit::broadcast_current::() - .map_err(|error| utils::err(&format!("{}", error))) -} - -#[hdk_extern] -pub fn get_broadcast_payload(_: ()) -> ExternResult> { - link_adapter::commit::get_broadcast_payload::() - .map_err(|error| utils::err(&format!("{}", error))) -} - -#[hdk_extern] -pub fn pull(args: PullArguments) -> ExternResult { - link_adapter::pull::pull::(true, args.hash, args.is_scribe) - .map_err(|error| utils::err(&format!("{}", error))) -} - -#[hdk_extern] -pub fn render(_: ()) -> ExternResult { - link_adapter::render::render::() - .map_err(|error| utils::err(&format!("{}", error))) -} - -#[hdk_extern] -pub fn update_current_revision(_hash: Hash) -> ExternResult<()> { - #[cfg(feature = "test")] - { - link_adapter::revisions::update_current_revision::( - _hash, - utils::get_now().unwrap(), - ) - .map_err(|err| utils::err(&format!("{}", err)))?; - } - Ok(()) -} - -/// Signal handling - -#[hdk_extern] -fn recv_remote_signal(signal: SerializedBytes) -> ExternResult<()> { - //Check if its a normal diff expression signal - match HashBroadcast::try_from(signal.clone()) { - Ok(broadcast) => { - debug!("Received broadcast: {:?} in HOLOCHAIN", broadcast); - link_adapter::pull::handle_broadcast::(broadcast) - .map_err(|err| utils::err(&format!("{}", err)))?; - } - //Check if its a broadcast message - Err(_) => match PerspectiveExpression::try_from(signal.clone()) { - Ok(sig) => emit_signal(sig)?, - //Check if its an online ping - Err(_) => return Err(utils::err(&format!("Signal not recognized: {:?}", signal))), - }, - }; - Ok(()) -} - -#[hdk_extern] -pub fn handle_broadcast(broadcast: HashBroadcast) -> ExternResult<()> { - link_adapter::pull::handle_broadcast::(broadcast) - .map_err(|err| utils::err(&format!("{}", err)))?; - Ok(()) -} - -// Telepresence implementation - -#[hdk_extern] -pub fn set_online_status(status: PerspectiveExpression) -> ExternResult<()> { - telepresence::status::set_online_status(status) - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(()) -} - -#[hdk_extern] -pub fn create_did_pub_key_link(did: String) -> ExternResult<()> { - telepresence::status::create_did_pub_key_link(did) - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(()) -} - -#[hdk_extern] -pub fn get_online_agents(_: ()) -> ExternResult> { - let res = telepresence::status::get_online_agents() - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -#[hdk_extern] -pub fn get_online_status(_: ()) -> ExternResult { - let res = telepresence::status::get_online_status() - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -#[hdk_extern] -pub fn get_agents_status(agent: AgentPubKey) -> ExternResult> { - let res = telepresence::status::get_agents_status(agent); - Ok(res) -} - -#[hdk_extern] -pub fn send_signal(signal_data: inputs::SignalData) -> ExternResult { - let res = telepresence::signal::send_signal(signal_data) - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -#[hdk_extern] -pub fn send_broadcast(data: PerspectiveExpression) -> ExternResult { - let res = telepresence::signal::send_broadcast(data) - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -#[hdk_extern] -pub fn get_active_agents(_: ()) -> ExternResult> { - let res = retriever::holochain::get_active_agents() - .map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -#[hdk_extern] -pub fn get_others(_: ()) -> ExternResult> { - let res = - telepresence::status::get_others().map_err(|error| utils::err(&format!("{}", error)))?; - Ok(res) -} - -//not loading from DNA properies since dna zome properties is always null for some reason -lazy_static! { - pub static ref ACTIVE_AGENT_DURATION: chrono::Duration = chrono::Duration::seconds(3600); - pub static ref ENABLE_SIGNALS: bool = true; - pub static ref SNAPSHOT_INTERVAL: usize = 100; - pub static ref CHUNK_SIZE: u16 = 10000; -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/chunked_diffs.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/chunked_diffs.rs deleted file mode 100644 index 5a6912dc2..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/chunked_diffs.rs +++ /dev/null @@ -1,207 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - EntryTypes, LinkExpression, PerspectiveDiff, -}; - -use crate::{Hash, CHUNK_SIZE}; -use crate::errors::{SocialContextResult}; -use crate::retriever::{PerspectiveDiffRetreiver}; - -#[derive(Clone)] -pub struct ChunkedDiffs { - max_changes_per_chunk: u16, - pub chunks: Vec -} - -impl ChunkedDiffs { - pub fn new(max: u16) -> Self { - Self { - max_changes_per_chunk: max, - chunks: vec![PerspectiveDiff::new()], - } - } - - pub fn add_additions(&mut self, links: Vec) { - let mut reverse_links = links.into_iter().rev().collect::>(); - while reverse_links.len() > 0 { - let len = self.chunks.len(); - let current_chunk = self.chunks.get_mut(len-1).expect("must have at least one"); - - while current_chunk.total_diff_number() < self.max_changes_per_chunk.into() && reverse_links.len() > 0 { - current_chunk.additions.push(reverse_links.pop().unwrap()); - } - - if reverse_links.len() > 0 { - self.chunks.push(PerspectiveDiff::new()) - } - } - } - - pub fn add_removals(&mut self, links: Vec) { - let mut reverse_links = links.into_iter().rev().collect::>(); - while reverse_links.len() > 0 { - let len = self.chunks.len(); - let current_chunk = self.chunks.get_mut(len-1).expect("must have at least one"); - - while current_chunk.total_diff_number() < self.max_changes_per_chunk.into() && reverse_links.len() > 0 { - current_chunk.removals.push(reverse_links.pop().unwrap()); - } - - if reverse_links.len() > 0 { - self.chunks.push(PerspectiveDiff::new()) - } - } - } - - pub fn into_entries(self) -> SocialContextResult> { - debug!("ChunkedDiffs.into_entries()"); - self.chunks - .into_iter() - .map(|chunk_diff| { - debug!("ChunkedDiffs writing chunk of size: {}", chunk_diff.total_diff_number()); - Retreiver::create_entry(EntryTypes::PerspectiveDiff(chunk_diff)) - }) - .collect() - } - - pub fn from_entries(hashes: Vec) -> SocialContextResult { - let mut diffs = Vec::new(); - for hash in hashes.into_iter() { - diffs.push(Retreiver::get::(hash)?); - } - - Ok(ChunkedDiffs { - max_changes_per_chunk: *CHUNK_SIZE, - chunks: diffs, - }) - } - - pub fn into_aggregated_diff(self) -> PerspectiveDiff { - self.chunks.into_iter().reduce(|accum, item| { - let mut temp = accum.clone(); - temp.additions.append(&mut item.additions.clone()); - temp.removals.append(&mut item.removals.clone()); - temp - }) - .unwrap_or(PerspectiveDiff::new()) - } -} - - -#[cfg(test)] -mod tests { - use super::ChunkedDiffs; - use crate::utils::create_link_expression; - use crate::retriever::{GLOBAL_MOCKED_GRAPH, MockPerspectiveGraph}; - - #[test] - fn can_chunk() { - let mut chunks = ChunkedDiffs::new(5); - - chunks.add_additions(vec![ - create_link_expression("a", "1"), - create_link_expression("a", "2"), - create_link_expression("a", "3"), - ]); - - assert_eq!(chunks.chunks.len(), 1); - - chunks.add_additions(vec![ - create_link_expression("a", "4"), - create_link_expression("a", "5"), - create_link_expression("a", "6"), - ]); - - assert_eq!(chunks.chunks.len(), 2); - - chunks.add_removals(vec![ - create_link_expression("a", "1"), - create_link_expression("a", "2"), - create_link_expression("a", "3"), - create_link_expression("a", "4"), - create_link_expression("a", "5"), - create_link_expression("a", "6"), - ]); - - assert_eq!(chunks.chunks.len(), 3); - } - - #[test] - fn can_aggregate() { - let mut chunks = ChunkedDiffs::new(5); - - let _a1 = create_link_expression("a", "1"); - let _a2 = create_link_expression("a", "2"); - let _r1 = create_link_expression("r", "1"); - let _r2 = create_link_expression("r", "2"); - let _r3 = create_link_expression("r", "3"); - let _r4 = create_link_expression("r", "4"); - - - chunks.add_additions(vec![_a1.clone()]); - chunks.add_additions(vec![_a2.clone()]); - chunks.add_removals(vec![_r1.clone(),_r2.clone(),_r3.clone(),_r4.clone()]); - - assert_eq!(chunks.chunks.len(), 2); - - let diff = chunks.into_aggregated_diff(); - - assert_eq!(diff.additions, vec![_a1,_a2]); - assert_eq!(diff.removals, vec![_r1,_r2,_r3,_r4]); - } - - #[test] - fn can_chunk_big_diffs() { - let mut chunks = ChunkedDiffs::new(500); - - let mut big_diff_add = Vec::new(); - for i in 0..5000 { - big_diff_add.push(create_link_expression("a", &format!("{}", i))); - } - chunks.add_additions(big_diff_add); - - let mut big_diff_remove = Vec::new(); - for i in 0..800 { - big_diff_remove.push(create_link_expression("a", &format!("{}", i))); - } - chunks.add_removals(big_diff_remove); - - let mut big_diff_add = Vec::new(); - for i in 0..213 { - big_diff_add.push(create_link_expression("a", &format!("{}", i))); - } - chunks.add_additions(big_diff_add); - - assert_eq!(chunks.chunks.len(), 13); - for i in 0..12 { - assert_eq!(chunks.chunks[i].total_diff_number(), 500); - } - assert_eq!(chunks.chunks[12].total_diff_number(), 13); - } - - #[test] - fn can_write_and_read_entries() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot("digraph{}").expect("can create mock graph from empty dot"); - } - update(); - - let mut chunks = ChunkedDiffs::new(500); - - let mut big_diff_add = Vec::new(); - for i in 0..5000 { - big_diff_add.push(create_link_expression("a", &format!("{}", i))); - } - chunks.add_additions(big_diff_add); - - assert_eq!(chunks.chunks.len(), 10); - - let chunks_clone = chunks.clone(); - let hashes = chunks.into_entries::().expect("into_entries does not error"); - let read_chunks = ChunkedDiffs::from_entries::(hashes).expect("from_entries does not error"); - - assert_eq!(read_chunks.chunks.len(), 10); - assert_eq!(format!("{:?}", read_chunks.chunks), format!("{:?}", chunks_clone.chunks)); - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs deleted file mode 100644 index e877d2611..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ /dev/null @@ -1,171 +0,0 @@ -//use chrono::Timelike; -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - EntryTypes, HashBroadcast, LinkTypes, PerspectiveDiff, PerspectiveDiffEntryReference, -}; - -use crate::errors::SocialContextResult; -use crate::link_adapter::revisions::{current_revision, update_current_revision}; -use crate::link_adapter::snapshots::generate_snapshot; -use crate::retriever::holochain::{get_active_agent_anchor, get_active_agents}; -use crate::retriever::PerspectiveDiffRetreiver; -use crate::telepresence::status::get_my_did; -use crate::utils::get_now; -use crate::{Hash, ENABLE_SIGNALS, SNAPSHOT_INTERVAL}; - -pub fn commit( - diff: PerspectiveDiff, -) -> SocialContextResult> { - debug!("===PerspectiveDiffSync.commit(): Function start"); - let now_fn_start = get_now()?.time(); - let current_revision = current_revision::()?; - - let mut entries_since_snapshot = 0; - if current_revision.is_some() { - let current = Retriever::get::( - current_revision.clone().unwrap().hash, - )?; - entries_since_snapshot = current.diffs_since_snapshot; - }; - debug!( - "===PerspectiveDiffSync.commit(): Entries since snapshot: {:#?}", - entries_since_snapshot - ); - //Add one since we are comitting an entry here - entries_since_snapshot += 1; - - let create_snapshot_here = if entries_since_snapshot >= *SNAPSHOT_INTERVAL { - entries_since_snapshot = 0; - true - } else { - false - }; - - let now = get_now()?.time(); - let diff_entry_create = Retriever::create_entry(EntryTypes::PerspectiveDiff(diff.clone()))?; - let diff_entry_ref_entry = PerspectiveDiffEntryReference { - diff: diff_entry_create.clone(), - parents: current_revision.map(|val| vec![val.hash]), - diffs_since_snapshot: entries_since_snapshot, - }; - let diff_entry_reference = Retriever::create_entry(EntryTypes::PerspectiveDiffEntryReference( - diff_entry_ref_entry.clone(), - ))?; - let after = get_now()?.time(); - // debug!( - // "===PerspectiveDiffSync.commit(): Created diff entry ref: {:#?}", - // diff_entry_reference - // ); - debug!( - "===PerspectiveDiffSync.commit() - Profiling: Took {} to create a PerspectiveDiff", - (after - now).num_milliseconds() - ); - - if create_snapshot_here { - //fetch all the diff's, we need a new function which will traverse graph and then return + diffs + next found snapshot - //create new snapshot linked from above diff_entry_reference - let snapshot = generate_snapshot(diff_entry_reference.clone())?; - - let now = get_now()?.time(); - Retriever::create_entry(EntryTypes::Snapshot(snapshot.clone()))?; - create_link( - hash_entry(diff_entry_ref_entry.clone())?, - hash_entry(snapshot)?, - LinkTypes::Snapshot, - LinkTag::new("snapshot"), - )?; - let after = get_now()?.time(); - debug!("===PerspectiveDiffSync.commit() - Profiling: Took {} to create snapshot entry and link", (after - now).num_milliseconds()); - }; - - let now = get_now()?; - let now_profile = get_now()?.time(); - //update_latest_revision::(diff_entry_reference.clone(), now.clone())?; - let after = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.commit() - Profiling: Took {} to update the latest revision", - (after - now_profile).num_milliseconds() - ); - update_current_revision::(diff_entry_reference.clone(), now)?; - - // if *ENABLE_SIGNALS { - // // let signal_data = PerspectiveDiffReference { - // // diff, - // // reference: diff_entry_ref_entry, - // // reference_hash: diff_entry_reference.clone(), - // // }; - // // send_revision_signal(signal_data)?; - // broadcast_current::()?; - // }; - - let after_fn_end = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.commit() - Profiling: Took {} to complete whole commit function", - (after_fn_end - now_fn_start).num_milliseconds() - ); - Ok(diff_entry_reference) -} - -pub fn add_active_agent_link() -> SocialContextResult<()> { - debug!("===PerspectiveDiffSync.add_active_agent_link(): Function start"); - let now_fn_start = get_now()?.time(); - let agent_root_entry = get_active_agent_anchor(); - let _agent_root_entry_action = - Retriever::create_entry(EntryTypes::Anchor(agent_root_entry.clone()))?; - - let agent = agent_info()?.agent_initial_pubkey; - create_link( - hash_entry(agent_root_entry)?, - agent, - LinkTypes::Index, - LinkTag::new("active_agent"), - )?; - let after_fn_end = get_now()?.time(); - debug!("===PerspectiveDiffSync.add_active_agent_link() - Profiling: Took {} to complete whole add_active_agent_link()", (after_fn_end - now_fn_start).num_milliseconds()); - Ok(()) -} - -pub fn broadcast_current() -> SocialContextResult> -{ - //debug!("Running broadcast_current"); - let current = current_revision::()?; - //debug!("Current revision: {:#?}", current); - - if current.is_some() { - let current_revision = current.clone().unwrap(); - let entry_ref = - Retriever::get::(current_revision.hash.clone())?; - let diff = Retriever::get::(entry_ref.diff.clone())?; - - let signal_data = HashBroadcast { - reference: entry_ref, - reference_hash: current_revision.hash.clone(), - diff, - broadcast_author: get_my_did()?.unwrap(), - }; - - let recent_agents = get_active_agents()?; - //debug!("Recent agents: {:#?}", recent_agents); - send_remote_signal(signal_data.get_sb()?, recent_agents.clone())?; - }; - Ok(current.map(|rev| rev.hash)) -} - -pub fn get_broadcast_payload() -> SocialContextResult> { - match current_revision::()? { - Some(current) => { - let current_revision = current; - let entry_ref = - Retriever::get::(current_revision.hash.clone())?; - let diff = Retriever::get::(entry_ref.diff.clone())?; - - Ok(Some(HashBroadcast { - reference: entry_ref, - reference_hash: current_revision.hash.clone(), - diff, - broadcast_author: get_my_did()?.unwrap(), - })) - }, - None => Ok(None) - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/mod.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/mod.rs deleted file mode 100644 index 385f55db2..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/mod.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub(crate) mod chunked_diffs; -pub(crate) mod commit; -pub(crate) mod pull; -pub(crate) mod render; -pub(crate) mod revisions; -pub(crate) mod snapshots; -pub(crate) mod test_graphs; -pub(crate) mod tests; -pub(crate) mod topo_sort; -pub(crate) mod workspace; diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/pull.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/pull.rs deleted file mode 100644 index 9059b9b32..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/pull.rs +++ /dev/null @@ -1,846 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - EntryTypes, HashBroadcast, PerspectiveDiff, PerspectiveDiffEntryReference, PullResult, -}; - -use crate::errors::SocialContextResult; -use crate::link_adapter::revisions::{current_revision, update_current_revision}; -use crate::link_adapter::workspace::{Workspace, NULL_NODE}; -use crate::retriever::PerspectiveDiffRetreiver; -use crate::utils::get_now; -use crate::Hash; - -fn merge( - latest: Hash, - current: Hash, -) -> SocialContextResult { - debug!("===PerspectiveDiffSync.merge(): Function start"); - let fn_start = get_now()?.time(); - - let latest_diff = Retriever::get::(latest.clone())?; - let current_diff = Retriever::get::(current.clone())?; - //Create the merge diff - let merge_diff = PerspectiveDiff { - additions: vec![], - removals: vec![], - }; - let merge_entry_hash = - Retriever::create_entry(EntryTypes::PerspectiveDiff(merge_diff.clone()))?; - - //Create the merge entry reference - let merge_entry_reference = PerspectiveDiffEntryReference { - parents: Some(vec![latest, current]), - diff: merge_entry_hash.clone(), - diffs_since_snapshot: latest_diff.diffs_since_snapshot - + current_diff.diffs_since_snapshot - + 1, - }; - let merge_entry_reference_hash = Retriever::create_entry( - EntryTypes::PerspectiveDiffEntryReference(merge_entry_reference.clone()), - )?; - debug!( - "===PerspectiveDiffSync.merge(): Commited merge entry: {:#?}", - merge_entry_reference_hash - ); - - let now = get_now()?; - update_current_revision::(merge_entry_reference_hash.clone(), now)?; - - let fn_end = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.merge() - Profiling: Took: {} to complete merge() function", - (fn_end - fn_start).num_milliseconds() - ); - Ok(merge_entry_reference_hash) -} - -pub fn pull( - emit: bool, - theirs: Hash, - is_scribe: bool, -) -> SocialContextResult { - debug!("===PerspectiveDiffSync.pull(): Function start"); - let fn_start = get_now()?.time(); - - let current = current_revision::()?; - let current_hash = current.clone().map(|val| val.hash); - debug!( - "===PerspectiveDiffSync.pull(): Pull made with theirs: {:#?} and current: {:#?}", - theirs, current - ); - - let theirs_hash = theirs.clone(); - - if Some(theirs_hash) == current_hash { - return Ok(PullResult { - diff: PerspectiveDiff::default(), - current_revision: current_hash, - }); - } - - let mut workspace = Workspace::new(); - - if current.is_none() { - workspace.collect_only_from_latest::(theirs.clone())?; - let diff = workspace.squashed_diff::()?; - update_current_revision::(theirs, get_now()?)?; - emit_signal(diff.clone())?; - return Ok(PullResult { - diff: PerspectiveDiff::default(), - current_revision: None, - }); - } - - let current = current.expect("current missing handled above"); - - workspace.build_diffs::(theirs.clone(), current.hash.clone())?; - - // First check if we are actually ahead of them -> we don't have to do anything - // they will have to merge with / or fast-forward to our current - if workspace.all_ancestors(¤t.hash)?.contains(&theirs) { - return Ok(PullResult { - diff: PerspectiveDiff::default(), - current_revision: Some(current.hash), - }); - } - - let fast_forward_possible = workspace.all_ancestors(&theirs)?.contains(¤t.hash); - - // If we can't fast forward, we have to merge - // but if we are not a scribe, we can't merge - // so in that case, we can't do anything - if !fast_forward_possible && !is_scribe { - debug!("===PerspectiveDiffSync.pull(): Have to merge but I'm not a scribe. Exiting without change..."); - return Ok(PullResult { - diff: PerspectiveDiff::default(), - current_revision: Some(current.hash), - }); - } - - //Get all the diffs which exist between current and the last ancestor that we got - let seen_diffs = workspace.all_ancestors(¤t.hash)?; - // println!("SEEN DIFFS: {:#?}", seen_diffs); - - //Get all the diffs in the graph which we havent seen - let unseen_diffs = if seen_diffs.len() > 0 { - let diffs = workspace - .sorted_diffs - .clone() - .expect("should be unseen diffs after build_diffs() call") - .into_iter() - .filter(|val| { - if val.0 == NULL_NODE() { - return false; - }; - if val.0 == current.hash { - return false; - }; - if seen_diffs.contains(&val.0) { - return false; - }; - true - }) - .collect::>(); - diffs - } else { - workspace - .sorted_diffs - .expect("should be unseen diffs after build_diffs() call") - .into_iter() - .filter(|val| val.0 != NULL_NODE() && val.0 != current.hash) - .collect::>() - }; - - let (diffs, current_revision) = if fast_forward_possible { - debug!("===PerspectiveDiffSync.pull(): There are paths between current and latest, lets fast forward the changes we have missed!"); - let mut out = PerspectiveDiff { - additions: vec![], - removals: vec![], - }; - for diff in unseen_diffs { - let diff_entry = Retriever::get::(diff.1.diff.clone())?; - out.additions.append(&mut diff_entry.additions.clone()); - out.removals.append(&mut diff_entry.removals.clone()); - } - update_current_revision::(theirs.clone(), get_now()?)?; - let fn_end = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.pull() - Profiling: Took: {} to complete pull() function", - (fn_end - fn_start).num_milliseconds() - ); - (out, theirs) - } else if is_scribe { - debug!("===PerspectiveDiffSync.pull():There are no paths between current and latest, we must merge current and latest"); - //Get the entries we missed from unseen diff - let mut out = PerspectiveDiff { - additions: vec![], - removals: vec![], - }; - for diff in unseen_diffs { - let diff_entry = Retriever::get::(diff.1.diff.clone())?; - out.additions.append(&mut diff_entry.additions.clone()); - out.removals.append(&mut diff_entry.removals.clone()); - } - - let merge_hash = merge::(theirs, current.hash)?; - let fn_end = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.pull() - Profiling: Took: {} to complete pull() function", - (fn_end - fn_start).num_milliseconds() - ); - (out, merge_hash) - } else { - ( - PerspectiveDiff { - additions: vec![], - removals: vec![], - }, - current.hash, - ) - }; - - //Emit the signal in case the client connection has a timeout during the zome call - if emit { - if diffs.additions.len() > 0 || diffs.removals.len() > 0 { - emit_signal(diffs.clone())?; - } - } - Ok(PullResult { - diff: diffs, - current_revision: Some(current_revision), - }) -} - -pub fn handle_broadcast( - broadcast: HashBroadcast, -) -> SocialContextResult<()> { - // debug!("===PerspectiveDiffSync.fast_forward_signal(): Function start"); - // let fn_start = get_now()?.time(); - let diff_reference = broadcast.reference.clone(); - let revision = broadcast.reference_hash.clone(); - - let current_revision = current_revision::()?; - - if current_revision.is_some() { - let current_revision = current_revision.unwrap(); - if revision == current_revision.hash { - // debug!("===PerspectiveDiffSync.fast_forward_signal(): Revision is the same as current"); - }; - if diff_reference.parents == Some(vec![current_revision.hash]) { - // debug!("===PerspectiveDiffSync.fast_forward_signal(): Revisions parent is the same as current, we can fast forward our current"); - update_current_revision::(revision, get_now()?)?; - emit_signal(broadcast.diff.clone())?; - }; - }; - //emit_signal(broadcast)?; - // let fn_end = get_now()?.time(); - // debug!("===PerspectiveDiffSync.fast_forward_signal() - Profiling: Took: {} to complete fast_forward_signal() function", (fn_end - fn_start).num_milliseconds()); - Ok(()) -} - -#[cfg(test)] -mod tests { - use super::pull; - use crate::retriever::{ - create_node_id_link_expression, create_node_id_vec, node_id_hash, MockPerspectiveGraph, - PerspectiveDiffRetreiver, GLOBAL_MOCKED_GRAPH, - }; - use crate::utils::create_link_expression; - use dot_structures; - - #[test] - fn test_fast_forward_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - - 1 -> 0 - 2 -> 0 - 3 -> 1 - 3 -> 2 - - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let update_current = - MockPerspectiveGraph::update_current_revision(current_node_hash, chrono::Utc::now()); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash, true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let node_1 = &node_id_hash(&dot_structures::Id::Plain(String::from("1"))).to_string(); - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_1, node_1), - create_link_expression(node_3, node_3), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - } - - #[test] - fn test_complex_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - - 3 -> 2 - 4 -> 2 - 5 -> 3 - 5 -> 4 - 6 -> 5 - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let update_current = - MockPerspectiveGraph::update_current_revision(current_node_hash, chrono::Utc::now()); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let node_2 = &node_id_hash(&dot_structures::Id::Plain(String::from("2"))).to_string(); - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let node_4 = &node_id_hash(&dot_structures::Id::Plain(String::from("4"))).to_string(); - let node_5 = &node_id_hash(&dot_structures::Id::Plain(String::from("5"))).to_string(); - let node_6 = &node_id_hash(&dot_structures::Id::Plain(String::from("6"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_2, node_2), - create_link_expression(node_3, node_3), - create_link_expression(node_4, node_4), - create_link_expression(node_5, node_5), - create_link_expression(node_6, node_6), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //Test that a merge actually happened and current was updated - let new_current = MockPerspectiveGraph::current_revision(); - assert!(new_current.is_ok()); - let new_current = new_current.unwrap(); - - assert!(new_current.unwrap().hash != latest_node_hash); - } - - #[test] - fn test_complex_fast_forward() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - - 3 -> 2 - 4 -> 2 - 5 -> 3 - 5 -> 4 - 6 -> 5 - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let update_current = - MockPerspectiveGraph::update_current_revision(current_node_hash, chrono::Utc::now()); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash, true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let node_5 = &node_id_hash(&dot_structures::Id::Plain(String::from("5"))).to_string(); - let node_6 = &node_id_hash(&dot_structures::Id::Plain(String::from("6"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_3, node_3), - create_link_expression(node_5, node_5), - create_link_expression(node_6, node_6), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - } - - #[test] - fn test_fast_forward_after_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 7 [ label = "7" ] - - 3 -> 2 - 4 -> 2 - 5 -> 3 - 5 -> 4 - 6 -> 5 - 7 -> 1 - 7 -> 6 - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("7"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - let update_current = - MockPerspectiveGraph::update_current_revision(current_node_hash, chrono::Utc::now()); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash, true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let node_1 = &node_id_hash(&dot_structures::Id::Plain(String::from("1"))).to_string(); - let node_7 = &node_id_hash(&dot_structures::Id::Plain(String::from("7"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_1, node_1), - create_link_expression(node_7, node_7), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - } - - #[test] - fn test_pull_complex_merge_implicit_zero() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 4 -> 2 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 5 -> 3 [ label = "()" ] - 6 -> 5 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let latest_node_hash = node_1; - - let current_node_hash = node_6; - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let node_1 = &node_id_hash(&dot_structures::Id::Plain(String::from("1"))).to_string(); - let expected_additions = vec![create_link_expression(node_1, node_1)]; - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - assert!(pull_res - .unwrap() - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_pull_complex_merge_implicit_zero_reversed() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 4 -> 2 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 5 -> 3 [ label = "()" ] - 6 -> 5 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let latest_node_hash = node_6; - - let current_node_hash = node_1; - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let node_6 = &node_id_hash(&dot_structures::Id::Plain(String::from("6"))).to_string(); - let node_5 = &node_id_hash(&dot_structures::Id::Plain(String::from("5"))).to_string(); - let node_4 = &node_id_hash(&dot_structures::Id::Plain(String::from("4"))).to_string(); - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let node_2 = &node_id_hash(&dot_structures::Id::Plain(String::from("2"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_6, node_6), - create_link_expression(node_5, node_5), - create_link_expression(node_4, node_4), - create_link_expression(node_3, node_3), - create_link_expression(node_2, node_2), - ]; - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - assert!(pull_res - .unwrap() - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_three_null_parents() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - - 4 -> 2 - 4 -> 3 - 5 -> 4 - 5 -> 1 - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - println!("{:#?}", pull_res); - let pull_res = pull_res.unwrap(); - - let node_5 = &node_id_hash(&dot_structures::Id::Plain(String::from("5"))).to_string(); - let node_4 = &node_id_hash(&dot_structures::Id::Plain(String::from("4"))).to_string(); - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let node_1 = &node_id_hash(&dot_structures::Id::Plain(String::from("1"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_5, node_5), - create_link_expression(node_4, node_4), - create_link_expression(node_3, node_3), - create_link_expression(node_1, node_1), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that no merge was created - //let latest = MockPerspectiveGraph::latest_revision(); - //assert!(latest.unwrap().unwrap().hash == latest_node_hash); - } - - #[test] - fn test_four_null_parents() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - - 4 -> 2 - 4 -> 3 - 5 -> 4 - 5 -> 1 - }"#, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - println!("{:#?}", pull_res); - let pull_res = pull_res.unwrap(); - - let node_5 = &node_id_hash(&dot_structures::Id::Plain(String::from("5"))).to_string(); - let node_4 = &node_id_hash(&dot_structures::Id::Plain(String::from("4"))).to_string(); - let node_3 = &node_id_hash(&dot_structures::Id::Plain(String::from("3"))).to_string(); - let node_2 = &node_id_hash(&dot_structures::Id::Plain(String::from("2"))).to_string(); - let node_1 = &node_id_hash(&dot_structures::Id::Plain(String::from("1"))).to_string(); - let expected_additions = vec![ - create_link_expression(node_5, node_5), - create_link_expression(node_4, node_4), - create_link_expression(node_3, node_3), - create_link_expression(node_2, node_2), - create_link_expression(node_1, node_1), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_high_complex_graph() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - &crate::link_adapter::test_graphs::HIGH_COMPLEX_GRAPH, - ) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("52"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("55"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - //println!("{:#?}", pull_res); - let pull_res = pull_res.unwrap(); - - let mut expected_additions = create_node_id_vec(23, 52); - expected_additions.push(create_node_id_link_expression(20)); - expected_additions.push(create_node_id_link_expression(21)); - - for addition in expected_additions.clone() { - assert!(pull_res.diff.additions.contains(&addition)); - } - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_late_join() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot(&crate::link_adapter::test_graphs::LATE_JOIN) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("314"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("313"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - //println!("{:#?}", pull_res); - let pull_res = pull_res.unwrap(); - - let expected_additions = vec![create_node_id_link_expression(314)]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_late_join_from_syncd() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot(&crate::link_adapter::test_graphs::LATE_JOIN2) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("304"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("301"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let expected_additions = vec![ - create_node_id_link_expression(304), - create_node_id_link_expression(303), - create_node_id_link_expression(302), - ]; - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } - - #[test] - fn test_late_join_from_unsyncd() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot(&crate::link_adapter::test_graphs::LATE_JOIN2) - .unwrap(); - } - update(); - - let latest_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("301"))); - - let current_node_hash = node_id_hash(&dot_structures::Id::Plain(String::from("304"))); - let update_current = MockPerspectiveGraph::update_current_revision( - current_node_hash.clone(), - chrono::Utc::now(), - ); - assert!(update_current.is_ok()); - - let pull_res = pull::(false, latest_node_hash.clone(), true); - assert!(pull_res.is_ok()); - let pull_res = pull_res.unwrap(); - - let expected_additions = create_node_id_vec(1, 301); - - assert!(pull_res - .diff - .additions - .iter() - .all(|item| expected_additions.contains(item))); - - //ensure that merge was created and thus current revision got updated - let current = MockPerspectiveGraph::current_revision(); - assert!(current.unwrap().unwrap().hash != current_node_hash); - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/render.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/render.rs deleted file mode 100644 index 1b41a886d..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/render.rs +++ /dev/null @@ -1,42 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::PerspectiveDiff; - -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::link_adapter::revisions::current_revision; -use crate::link_adapter::workspace::Workspace; -use crate::retriever::PerspectiveDiffRetreiver; -use crate::utils::get_now; -use crate::Perspective; - -pub fn render() -> SocialContextResult { - debug!("===PerspectiveDiffSync.render(): Function start"); - let fn_start = get_now()?.time(); - - let current = current_revision::()?.ok_or(SocialContextError::InternalError( - "Can't render when we have no current revision", - ))?; - - debug!("===PerspectiveDiffSync.render(): current: {:?}", current); - - let mut workspace = Workspace::new(); - workspace.collect_only_from_latest::(current.hash)?; - - let mut perspective = Perspective { links: vec![] }; - for diff_node in workspace.entry_map { - let diff_entry = Retriever::get::(diff_node.1.diff.clone())?; - - for addition in diff_entry.additions { - perspective.links.push(addition); - } - for removal in diff_entry.removals { - perspective.links.retain(|l| l != &removal); - } - } - - let fn_end = get_now()?.time(); - debug!( - "===PerspectiveDiffSync.render() - Profiling: Took: {} to complete render() function", - (fn_end - fn_start).num_milliseconds() - ); - Ok(perspective) -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/revisions.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/revisions.rs deleted file mode 100644 index e0a7cd09f..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/revisions.rs +++ /dev/null @@ -1,32 +0,0 @@ -use chrono::{DateTime, Utc}; -use hdk::prelude::debug; -use perspective_diff_sync_integrity::LocalHashReference; - -use crate::errors::SocialContextResult; -use crate::retriever::PerspectiveDiffRetreiver; -use crate::utils::get_now; -use crate::Hash; - -pub fn update_current_revision( - hash: Hash, - timestamp: DateTime, -) -> SocialContextResult<()> { - debug!("===PerspectiveDiffSync.update_current_revision(): Function start"); - let now = get_now()?.time(); - let res = Retriever::update_current_revision(hash, timestamp); - let after = get_now()?.time(); - debug!("===PerspectiveDiffSync.update_current_revision() - Profiling: Took: {} to update current_revision", (after - now).num_milliseconds()); - res -} - -//Latest revision as seen from our local state -pub fn current_revision( -) -> SocialContextResult> { - //debug!("===PerspectiveDiffSync.current_revision(): Function start"); - //let now = get_now()?.time(); - let rev = Retriever::current_revision()?; - // debug!("===PerspectiveDiffSync.current_revision(): rev = {:?}", rev); - //let after = get_now()?.time(); - //debug!("===PerspectiveDiffSync.current_revision() - Profiling: Took: {} to get the current_revision", (after - now).num_milliseconds()); - Ok(rev) -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs deleted file mode 100644 index ee5464349..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs +++ /dev/null @@ -1,265 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - LinkExpression, LinkTypes, PerspectiveDiff, PerspectiveDiffEntryReference, Snapshot, -}; - -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::link_adapter::chunked_diffs::ChunkedDiffs; -use crate::retriever::HolochainRetreiver; -use crate::utils::get_now; -use crate::{Hash, CHUNK_SIZE}; - -struct SearchPosition { - hash: Hash, - is_unseen: bool, -} - -pub fn generate_snapshot( - latest: HoloHash, -) -> SocialContextResult { - debug!("===PerspectiveDiffSync.generate_snapshot(): Function start"); - let fn_start = get_now()?.time(); - let mut search_position = SearchPosition { - hash: latest.clone(), - is_unseen: false, - }; - let mut seen: HashSet = HashSet::new(); - let mut unseen_parents = vec![]; - - let mut all_additions = BTreeSet::new(); - let mut all_removals = BTreeSet::new(); - - loop { - let diff = get(search_position.hash.clone(), GetOptions::network())? - .ok_or(SocialContextError::InternalError( - "generate_snapshot(): Could not find entry while populating search", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - if diff.diffs_since_snapshot == 0 && search_position.hash != latest { - let now = get_now()?.time(); - let input = GetLinksInputBuilder::try_new( - hash_entry(&diff)?, - LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .get_options(GetStrategy::Network) - .build(); - let mut snapshot_links = get_links(input)?; - let after = get_now()?.time(); - debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot links", (after - now).num_milliseconds()); - if snapshot_links.len() == 0 { - debug!("===PerspectiveDiffSync.generate_snapshot() - ERROR: Did not find snapshot link where we expected to!"); - let should_break = handle_parents( - diff, - &mut search_position, - &mut seen, - &mut unseen_parents, - &mut all_additions, - &mut all_removals, - )?; - if should_break { - break; - } - } else { - let now = get_now()?.time(); - //get snapshot and add elements to out - let snapshot = get( - snapshot_links - .remove(0) - .target - .into_entry_hash() - .expect("Could not get entry_hash"), - GetOptions::network(), - )? - .ok_or(SocialContextError::InternalError( - "Could not find diff entry for given diff entry reference", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - let after = get_now()?.time(); - debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot entry", (after - now).num_milliseconds()); - - let diff = ChunkedDiffs::from_entries::(snapshot.diff_chunks)? - .into_aggregated_diff(); - for addition in diff.additions.iter() { - all_additions.insert(addition.clone()); - } - for removal in diff.removals.iter() { - all_removals.insert(removal.clone()); - } - for hash in snapshot.included_diffs.iter() { - seen.insert(hash.clone()); - } - //Be careful with break here where there are still unseen parents - if unseen_parents.len() == 0 { - // debug!("No more unseen parents within snapshot block"); - break; - } else { - search_position = unseen_parents.remove(0); - } - }; - } else { - let should_break = handle_parents( - diff, - &mut search_position, - &mut seen, - &mut unseen_parents, - &mut all_additions, - &mut all_removals, - )?; - if should_break { - break; - } - } - } - - let mut chunked_diffs = ChunkedDiffs::new(*CHUNK_SIZE); - - chunked_diffs.add_additions(all_additions.into_iter().collect()); - chunked_diffs.add_removals(all_removals.into_iter().collect()); - - let snapshot = Snapshot { - diff_chunks: chunked_diffs.into_entries::()?, - included_diffs: seen.into_iter().collect(), - }; - - let fn_end = get_now()?.time(); - debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took: {} to complete generate_snapshot function", (fn_end - fn_start).num_milliseconds()); - Ok(snapshot) -} - -fn handle_parents( - diff: PerspectiveDiffEntryReference, - search_position: &mut SearchPosition, - seen: &mut HashSet, - unseen_parents: &mut Vec, - all_additions: &mut BTreeSet, - all_removals: &mut BTreeSet, -) -> SocialContextResult { - //Check if entry is already in graph - if !seen.contains(&search_position.hash) { - seen.insert(search_position.hash.clone()); - let diff_entry = get(diff.diff.clone(), GetOptions::network())? - .ok_or(SocialContextError::InternalError( - "Could not find diff entry for given diff entry reference", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - - for addition in diff_entry.additions.iter() { - all_additions.insert(addition.clone()); - } - for removal in diff_entry.removals.iter() { - all_removals.insert(removal.clone()); - } - - if diff.parents.is_none() { - //No parents, we have reached the end of the chain - //Now move onto traversing unseen parents, or break if we dont have any other paths to search - if unseen_parents.len() == 0 { - // debug!("No more unseen items within parent block"); - Ok(true) - } else { - // debug!("Moving onto unseen fork items within parent block"); - *search_position = unseen_parents.remove(0); - Ok(false) - } - } else { - //Do the fork traversals - let mut parents = diff.parents.unwrap(); - //Check if all parents have already been seen, if so then break or move onto next unseen parents - //TODO; we should use a seen set here versus array iter - if parents.iter().all(|val| seen.contains(val)) { - if unseen_parents.len() == 0 { - // debug!("Parents of item seen and unseen 0"); - return Ok(true); - } else { - // debug!("last moving onto unseen"); - *search_position = unseen_parents.remove(0); - Ok(false) - } - } else { - *search_position = SearchPosition { - hash: parents.remove(0), - is_unseen: false, - }; - // debug!("Appending parents to look up"); - unseen_parents.append( - &mut parents - .into_iter() - .map(|val| SearchPosition { - hash: val, - is_unseen: true, - }) - .collect(), - ); - Ok(false) - } - } - } else if search_position.is_unseen { - //The parent for this branch is already seen so likely already explored and we are part of the main branch - if unseen_parents.len() == 0 { - // debug!("No more unseen items within parent block"); - Ok(true) - } else { - // debug!("Moving onto unseen fork items within parent block"); - *search_position = unseen_parents.remove(0); - Ok(false) - } - } else { - if diff.parents.is_none() { - //No parents, we have reached the end of the chain - //Now move onto traversing unseen parents, or break if we dont have any other paths to search - if unseen_parents.len() == 0 { - // debug!("No more unseen items within parent block"); - Ok(true) - } else { - // debug!("Moving onto unseen fork items within parent block"); - *search_position = unseen_parents.remove(0); - Ok(false) - } - } else { - //Do the fork traversals - let mut parents = diff.parents.unwrap(); - //Check if all parents have already been seen, if so then break or move onto next unseen parents - //TODO; we should use a seen set here versus array iter - if parents.iter().all(|val| seen.contains(val)) { - if unseen_parents.len() == 0 { - // debug!("Parents of item seen and unseen 0"); - Ok(true) - } else { - // debug!("last moving onto unseen"); - *search_position = unseen_parents.remove(0); - Ok(false) - } - } else { - *search_position = SearchPosition { - hash: parents.remove(0), - is_unseen: false, - }; - // debug!("Appending parents to look up"); - unseen_parents.append( - &mut parents - .into_iter() - .map(|val| SearchPosition { - hash: val, - is_unseen: true, - }) - .collect(), - ); - Ok(false) - } - } - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/test_graphs.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/test_graphs.rs deleted file mode 100644 index fea27288c..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/test_graphs.rs +++ /dev/null @@ -1,1495 +0,0 @@ -lazy_static! { - pub static ref LATE_JOIN: String = String::from(r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 7 [ label = "7" ] - 8 [ label = "8" ] - 9 [ label = "9" ] - 10 [ label = "10" ] - 11 [ label = "11" ] - 12 [ label = "12" ] - 13 [ label = "13" ] - 14 [ label = "14" ] - 15 [ label = "15" ] - 16 [ label = "16" ] - 17 [ label = "17" ] - 18 [ label = "18" ] - 19 [ label = "19" ] - 20 [ label = "20" ] - 21 [ label = "21" ] - 22 [ label = "22" ] - 23 [ label = "23" ] - 24 [ label = "24" ] - 25 [ label = "25" ] - 26 [ label = "26" ] - 27 [ label = "27" ] - 28 [ label = "28" ] - 29 [ label = "29" ] - 30 [ label = "30" ] - 31 [ label = "31" ] - 32 [ label = "32" ] - 33 [ label = "33" ] - 34 [ label = "34" ] - 35 [ label = "35" ] - 36 [ label = "36" ] - 37 [ label = "37" ] - 38 [ label = "38" ] - 39 [ label = "39" ] - 40 [ label = "40" ] - 41 [ label = "41" ] - 42 [ label = "42" ] - 43 [ label = "43" ] - 44 [ label = "44" ] - 45 [ label = "45" ] - 46 [ label = "46" ] - 47 [ label = "47" ] - 48 [ label = "48" ] - 49 [ label = "49" ] - 50 [ label = "50" ] - 51 [ label = "51" ] - 52 [ label = "52" ] - 53 [ label = "53" ] - 54 [ label = "54" ] - 55 [ label = "55" ] - 56 [ label = "56" ] - 57 [ label = "57" ] - 58 [ label = "58" ] - 59 [ label = "59" ] - 60 [ label = "60" ] - 61 [ label = "61" ] - 62 [ label = "62" ] - 63 [ label = "63" ] - 64 [ label = "64" ] - 65 [ label = "65" ] - 66 [ label = "66" ] - 67 [ label = "67" ] - 68 [ label = "68" ] - 69 [ label = "69" ] - 70 [ label = "70" ] - 71 [ label = "71" ] - 72 [ label = "72" ] - 73 [ label = "73" ] - 74 [ label = "74" ] - 75 [ label = "75" ] - 76 [ label = "76" ] - 77 [ label = "77" ] - 78 [ label = "78" ] - 79 [ label = "79" ] - 80 [ label = "80" ] - 81 [ label = "81" ] - 82 [ label = "82" ] - 83 [ label = "83" ] - 84 [ label = "84" ] - 85 [ label = "85" ] - 86 [ label = "86" ] - 87 [ label = "87" ] - 88 [ label = "88" ] - 89 [ label = "89" ] - 90 [ label = "90" ] - 91 [ label = "91" ] - 92 [ label = "92" ] - 93 [ label = "93" ] - 94 [ label = "94" ] - 95 [ label = "95" ] - 96 [ label = "96" ] - 97 [ label = "97" ] - 98 [ label = "98" ] - 99 [ label = "99" ] - 100 [ label = "100" ] - 101 [ label = "101" ] - 102 [ label = "102" ] - 103 [ label = "103" ] - 104 [ label = "104" ] - 105 [ label = "105" ] - 106 [ label = "106" ] - 107 [ label = "107" ] - 108 [ label = "108" ] - 109 [ label = "109" ] - 110 [ label = "110" ] - 111 [ label = "111" ] - 112 [ label = "112" ] - 113 [ label = "113" ] - 114 [ label = "114" ] - 115 [ label = "115" ] - 116 [ label = "116" ] - 117 [ label = "117" ] - 118 [ label = "118" ] - 119 [ label = "119" ] - 120 [ label = "120" ] - 121 [ label = "121" ] - 122 [ label = "122" ] - 123 [ label = "123" ] - 124 [ label = "124" ] - 125 [ label = "125" ] - 126 [ label = "126" ] - 127 [ label = "127" ] - 128 [ label = "128" ] - 129 [ label = "129" ] - 130 [ label = "130" ] - 131 [ label = "131" ] - 132 [ label = "132" ] - 133 [ label = "133" ] - 134 [ label = "134" ] - 135 [ label = "135" ] - 136 [ label = "136" ] - 137 [ label = "137" ] - 138 [ label = "138" ] - 139 [ label = "139" ] - 140 [ label = "140" ] - 141 [ label = "141" ] - 142 [ label = "142" ] - 143 [ label = "143" ] - 144 [ label = "144" ] - 145 [ label = "145" ] - 146 [ label = "146" ] - 147 [ label = "147" ] - 148 [ label = "148" ] - 149 [ label = "149" ] - 150 [ label = "150" ] - 151 [ label = "151" ] - 152 [ label = "152" ] - 153 [ label = "153" ] - 154 [ label = "154" ] - 155 [ label = "155" ] - 156 [ label = "156" ] - 157 [ label = "157" ] - 158 [ label = "158" ] - 159 [ label = "159" ] - 160 [ label = "160" ] - 161 [ label = "161" ] - 162 [ label = "162" ] - 163 [ label = "163" ] - 164 [ label = "164" ] - 165 [ label = "165" ] - 166 [ label = "166" ] - 167 [ label = "167" ] - 168 [ label = "168" ] - 169 [ label = "169" ] - 170 [ label = "170" ] - 171 [ label = "171" ] - 172 [ label = "172" ] - 173 [ label = "173" ] - 174 [ label = "174" ] - 175 [ label = "175" ] - 176 [ label = "176" ] - 177 [ label = "177" ] - 178 [ label = "178" ] - 179 [ label = "179" ] - 180 [ label = "180" ] - 181 [ label = "181" ] - 182 [ label = "182" ] - 183 [ label = "183" ] - 184 [ label = "184" ] - 185 [ label = "185" ] - 186 [ label = "186" ] - 187 [ label = "187" ] - 188 [ label = "188" ] - 189 [ label = "189" ] - 190 [ label = "190" ] - 191 [ label = "191" ] - 192 [ label = "192" ] - 193 [ label = "193" ] - 194 [ label = "194" ] - 195 [ label = "195" ] - 196 [ label = "196" ] - 197 [ label = "197" ] - 198 [ label = "198" ] - 199 [ label = "199" ] - 200 [ label = "200" ] - 201 [ label = "201" ] - 202 [ label = "202" ] - 203 [ label = "203" ] - 204 [ label = "204" ] - 205 [ label = "205" ] - 206 [ label = "206" ] - 207 [ label = "207" ] - 208 [ label = "208" ] - 209 [ label = "209" ] - 210 [ label = "210" ] - 211 [ label = "211" ] - 212 [ label = "212" ] - 213 [ label = "213" ] - 214 [ label = "214" ] - 215 [ label = "215" ] - 216 [ label = "216" ] - 217 [ label = "217" ] - 218 [ label = "218" ] - 219 [ label = "219" ] - 220 [ label = "220" ] - 221 [ label = "221" ] - 222 [ label = "222" ] - 223 [ label = "223" ] - 224 [ label = "224" ] - 225 [ label = "225" ] - 226 [ label = "226" ] - 227 [ label = "227" ] - 228 [ label = "228" ] - 229 [ label = "229" ] - 230 [ label = "230" ] - 231 [ label = "231" ] - 232 [ label = "232" ] - 233 [ label = "233" ] - 234 [ label = "234" ] - 235 [ label = "235" ] - 236 [ label = "236" ] - 237 [ label = "237" ] - 238 [ label = "238" ] - 239 [ label = "239" ] - 240 [ label = "240" ] - 241 [ label = "241" ] - 242 [ label = "242" ] - 243 [ label = "243" ] - 244 [ label = "244" ] - 245 [ label = "245" ] - 246 [ label = "246" ] - 247 [ label = "247" ] - 248 [ label = "248" ] - 249 [ label = "249" ] - 250 [ label = "250" ] - 251 [ label = "251" ] - 252 [ label = "252" ] - 253 [ label = "253" ] - 254 [ label = "254" ] - 255 [ label = "255" ] - 256 [ label = "256" ] - 257 [ label = "257" ] - 258 [ label = "258" ] - 259 [ label = "259" ] - 260 [ label = "260" ] - 261 [ label = "261" ] - 262 [ label = "262" ] - 263 [ label = "263" ] - 264 [ label = "264" ] - 265 [ label = "265" ] - 266 [ label = "266" ] - 267 [ label = "267" ] - 268 [ label = "268" ] - 269 [ label = "269" ] - 270 [ label = "270" ] - 271 [ label = "271" ] - 272 [ label = "272" ] - 273 [ label = "273" ] - 274 [ label = "274" ] - 275 [ label = "275" ] - 276 [ label = "276" ] - 277 [ label = "277" ] - 278 [ label = "278" ] - 279 [ label = "279" ] - 280 [ label = "280" ] - 281 [ label = "281" ] - 282 [ label = "282" ] - 283 [ label = "283" ] - 284 [ label = "284" ] - 285 [ label = "285" ] - 286 [ label = "286" ] - 287 [ label = "287" ] - 288 [ label = "288" ] - 289 [ label = "289" ] - 290 [ label = "290" ] - 291 [ label = "291" ] - 292 [ label = "292" ] - 293 [ label = "293" ] - 294 [ label = "294" ] - 295 [ label = "295" ] - 296 [ label = "296" ] - 297 [ label = "297" ] - 298 [ label = "298" ] - 299 [ label = "299" ] - 300 [ label = "300" ] - 301 [ label = "301" ] - 302 [ label = "302" ] - 303 [ label = "303" ] - 304 [ label = "304" ] - 305 [ label = "305" ] - 306 [ label = "306" ] - 307 [ label = "307" ] - 308 [ label = "308" ] - 309 [ label = "309" ] - 310 [ label = "310" ] - 311 [ label = "311" ] - 312 [ label = "312" ] - 313 [ label = "313" ] - 314 [ label = "314" ] - 3 -> 2 [ label = "()" ] - 4 -> 3 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 6 -> 5 [ label = "()" ] - 7 -> 6 [ label = "()" ] - 8 -> 7 [ label = "()" ] - 9 -> 8 [ label = "()" ] - 11 -> 10 [ label = "()" ] - 11 -> 9 [ label = "()" ] - 12 -> 10 [ label = "()" ] - 13 -> 12 [ label = "()" ] - 14 -> 13 [ label = "()" ] - 14 -> 11 [ label = "()" ] - 15 -> 14 [ label = "()" ] - 16 -> 15 [ label = "()" ] - 17 -> 16 [ label = "()" ] - 18 -> 17 [ label = "()" ] - 19 -> 18 [ label = "()" ] - 20 -> 19 [ label = "()" ] - 21 -> 16 [ label = "()" ] - 22 -> 21 [ label = "()" ] - 23 -> 20 [ label = "()" ] - 23 -> 22 [ label = "()" ] - 24 -> 23 [ label = "()" ] - 25 -> 24 [ label = "()" ] - 26 -> 25 [ label = "()" ] - 27 -> 26 [ label = "()" ] - 28 -> 25 [ label = "()" ] - 29 -> 28 [ label = "()" ] - 30 -> 29 [ label = "()" ] - 30 -> 27 [ label = "()" ] - 32 -> 31 [ label = "()" ] - 32 -> 30 [ label = "()" ] - 33 -> 32 [ label = "()" ] - 34 -> 32 [ label = "()" ] - 35 -> 34 [ label = "()" ] - 35 -> 33 [ label = "()" ] - 36 -> 35 [ label = "()" ] - 37 -> 36 [ label = "()" ] - 38 -> 37 [ label = "()" ] - 39 -> 38 [ label = "()" ] - 40 -> 35 [ label = "()" ] - 41 -> 40 [ label = "()" ] - 42 -> 39 [ label = "()" ] - 42 -> 41 [ label = "()" ] - 43 -> 42 [ label = "()" ] - 44 -> 43 [ label = "()" ] - 45 -> 44 [ label = "()" ] - 46 -> 45 [ label = "()" ] - 47 -> 46 [ label = "()" ] - 48 -> 47 [ label = "()" ] - 49 -> 48 [ label = "()" ] - 50 -> 49 [ label = "()" ] - 51 -> 50 [ label = "()" ] - 52 -> 51 [ label = "()" ] - 53 -> 52 [ label = "()" ] - 54 -> 53 [ label = "()" ] - 55 -> 54 [ label = "()" ] - 56 -> 55 [ label = "()" ] - 57 -> 56 [ label = "()" ] - 58 -> 57 [ label = "()" ] - 59 -> 58 [ label = "()" ] - 60 -> 59 [ label = "()" ] - 61 -> 60 [ label = "()" ] - 62 -> 61 [ label = "()" ] - 63 -> 62 [ label = "()" ] - 64 -> 63 [ label = "()" ] - 65 -> 64 [ label = "()" ] - 66 -> 65 [ label = "()" ] - 67 -> 66 [ label = "()" ] - 68 -> 67 [ label = "()" ] - 69 -> 68 [ label = "()" ] - 70 -> 69 [ label = "()" ] - 71 -> 70 [ label = "()" ] - 72 -> 71 [ label = "()" ] - 73 -> 72 [ label = "()" ] - 74 -> 73 [ label = "()" ] - 75 -> 74 [ label = "()" ] - 76 -> 75 [ label = "()" ] - 77 -> 76 [ label = "()" ] - 78 -> 77 [ label = "()" ] - 79 -> 78 [ label = "()" ] - 80 -> 79 [ label = "()" ] - 81 -> 80 [ label = "()" ] - 82 -> 81 [ label = "()" ] - 83 -> 82 [ label = "()" ] - 84 -> 83 [ label = "()" ] - 85 -> 84 [ label = "()" ] - 86 -> 85 [ label = "()" ] - 87 -> 86 [ label = "()" ] - 88 -> 87 [ label = "()" ] - 89 -> 88 [ label = "()" ] - 90 -> 89 [ label = "()" ] - 91 -> 90 [ label = "()" ] - 92 -> 91 [ label = "()" ] - 93 -> 92 [ label = "()" ] - 94 -> 93 [ label = "()" ] - 95 -> 94 [ label = "()" ] - 96 -> 95 [ label = "()" ] - 97 -> 96 [ label = "()" ] - 98 -> 97 [ label = "()" ] - 99 -> 98 [ label = "()" ] - 100 -> 99 [ label = "()" ] - 101 -> 100 [ label = "()" ] - 102 -> 101 [ label = "()" ] - 103 -> 102 [ label = "()" ] - 104 -> 103 [ label = "()" ] - 105 -> 104 [ label = "()" ] - 106 -> 105 [ label = "()" ] - 107 -> 106 [ label = "()" ] - 108 -> 107 [ label = "()" ] - 109 -> 108 [ label = "()" ] - 110 -> 81 [ label = "()" ] - 111 -> 110 [ label = "()" ] - 112 -> 111 [ label = "()" ] - 113 -> 100 [ label = "()" ] - 113 -> 112 [ label = "()" ] - 114 -> 109 [ label = "()" ] - 114 -> 113 [ label = "()" ] - 115 -> 1 [ label = "()" ] - 115 -> 114 [ label = "()" ] - 116 -> 1 [ label = "()" ] - 116 -> 114 [ label = "()" ] - 117 -> 115 [ label = "()" ] - 117 -> 116 [ label = "()" ] - 118 -> 117 [ label = "()" ] - 119 -> 118 [ label = "()" ] - 120 -> 119 [ label = "()" ] - 121 -> 120 [ label = "()" ] - 122 -> 121 [ label = "()" ] - 123 -> 122 [ label = "()" ] - 124 -> 123 [ label = "()" ] - 125 -> 124 [ label = "()" ] - 126 -> 125 [ label = "()" ] - 127 -> 126 [ label = "()" ] - 128 -> 127 [ label = "()" ] - 129 -> 128 [ label = "()" ] - 130 -> 129 [ label = "()" ] - 131 -> 130 [ label = "()" ] - 132 -> 131 [ label = "()" ] - 133 -> 132 [ label = "()" ] - 134 -> 133 [ label = "()" ] - 135 -> 134 [ label = "()" ] - 136 -> 135 [ label = "()" ] - 137 -> 136 [ label = "()" ] - 138 -> 115 [ label = "()" ] - 138 -> 116 [ label = "()" ] - 139 -> 138 [ label = "()" ] - 140 -> 127 [ label = "()" ] - 140 -> 139 [ label = "()" ] - 141 -> 139 [ label = "()" ] - 142 -> 137 [ label = "()" ] - 142 -> 141 [ label = "()" ] - 143 -> 142 [ label = "()" ] - 143 -> 140 [ label = "()" ] - 144 -> 143 [ label = "()" ] - 145 -> 144 [ label = "()" ] - 146 -> 145 [ label = "()" ] - 147 -> 146 [ label = "()" ] - 148 -> 147 [ label = "()" ] - 149 -> 148 [ label = "()" ] - 150 -> 149 [ label = "()" ] - 151 -> 150 [ label = "()" ] - 152 -> 151 [ label = "()" ] - 153 -> 152 [ label = "()" ] - 154 -> 153 [ label = "()" ] - 155 -> 154 [ label = "()" ] - 156 -> 155 [ label = "()" ] - 157 -> 156 [ label = "()" ] - 158 -> 157 [ label = "()" ] - 159 -> 158 [ label = "()" ] - 160 -> 159 [ label = "()" ] - 161 -> 160 [ label = "()" ] - 162 -> 161 [ label = "()" ] - 163 -> 162 [ label = "()" ] - 164 -> 163 [ label = "()" ] - 165 -> 164 [ label = "()" ] - 166 -> 165 [ label = "()" ] - 167 -> 166 [ label = "()" ] - 168 -> 167 [ label = "()" ] - 169 -> 168 [ label = "()" ] - 170 -> 169 [ label = "()" ] - 171 -> 170 [ label = "()" ] - 172 -> 171 [ label = "()" ] - 173 -> 172 [ label = "()" ] - 174 -> 173 [ label = "()" ] - 175 -> 174 [ label = "()" ] - 176 -> 175 [ label = "()" ] - 177 -> 176 [ label = "()" ] - 178 -> 177 [ label = "()" ] - 179 -> 178 [ label = "()" ] - 180 -> 179 [ label = "()" ] - 181 -> 180 [ label = "()" ] - 182 -> 181 [ label = "()" ] - 183 -> 182 [ label = "()" ] - 184 -> 183 [ label = "()" ] - 185 -> 184 [ label = "()" ] - 186 -> 185 [ label = "()" ] - 187 -> 186 [ label = "()" ] - 188 -> 187 [ label = "()" ] - 189 -> 188 [ label = "()" ] - 190 -> 189 [ label = "()" ] - 191 -> 190 [ label = "()" ] - 192 -> 191 [ label = "()" ] - 193 -> 192 [ label = "()" ] - 194 -> 193 [ label = "()" ] - 195 -> 192 [ label = "()" ] - 196 -> 195 [ label = "()" ] - 197 -> 192 [ label = "()" ] - 198 -> 197 [ label = "()" ] - 199 -> 198 [ label = "()" ] - 199 -> 196 [ label = "()" ] - 200 -> 199 [ label = "()" ] - 200 -> 194 [ label = "()" ] - 201 -> 200 [ label = "()" ] - 202 -> 201 [ label = "()" ] - 203 -> 202 [ label = "()" ] - 204 -> 203 [ label = "()" ] - 205 -> 204 [ label = "()" ] - 206 -> 205 [ label = "()" ] - 207 -> 206 [ label = "()" ] - 208 -> 207 [ label = "()" ] - 209 -> 208 [ label = "()" ] - 210 -> 209 [ label = "()" ] - 211 -> 210 [ label = "()" ] - 212 -> 211 [ label = "()" ] - 213 -> 212 [ label = "()" ] - 214 -> 213 [ label = "()" ] - 215 -> 214 [ label = "()" ] - 216 -> 215 [ label = "()" ] - 217 -> 216 [ label = "()" ] - 218 -> 217 [ label = "()" ] - 219 -> 218 [ label = "()" ] - 220 -> 219 [ label = "()" ] - 221 -> 220 [ label = "()" ] - 222 -> 221 [ label = "()" ] - 223 -> 222 [ label = "()" ] - 224 -> 223 [ label = "()" ] - 225 -> 224 [ label = "()" ] - 226 -> 225 [ label = "()" ] - 227 -> 226 [ label = "()" ] - 228 -> 227 [ label = "()" ] - 229 -> 228 [ label = "()" ] - 230 -> 229 [ label = "()" ] - 231 -> 230 [ label = "()" ] - 232 -> 231 [ label = "()" ] - 233 -> 232 [ label = "()" ] - 234 -> 233 [ label = "()" ] - 235 -> 231 [ label = "()" ] - 236 -> 235 [ label = "()" ] - 237 -> 236 [ label = "()" ] - 238 -> 237 [ label = "()" ] - 239 -> 236 [ label = "()" ] - 240 -> 239 [ label = "()" ] - 240 -> 238 [ label = "()" ] - 241 -> 236 [ label = "()" ] - 242 -> 238 [ label = "()" ] - 242 -> 241 [ label = "()" ] - 243 -> 239 [ label = "()" ] - 243 -> 242 [ label = "()" ] - 244 -> 243 [ label = "()" ] - 245 -> 234 [ label = "()" ] - 245 -> 244 [ label = "()" ] - 246 -> 245 [ label = "()" ] - 247 -> 245 [ label = "()" ] - 247 -> 240 [ label = "()" ] - 248 -> 246 [ label = "()" ] - 248 -> 247 [ label = "()" ] - 249 -> 248 [ label = "()" ] - 250 -> 249 [ label = "()" ] - 251 -> 248 [ label = "()" ] - 252 -> 250 [ label = "()" ] - 252 -> 251 [ label = "()" ] - 253 -> 250 [ label = "()" ] - 253 -> 251 [ label = "()" ] - 254 -> 253 [ label = "()" ] - 254 -> 252 [ label = "()" ] - 255 -> 254 [ label = "()" ] - 256 -> 255 [ label = "()" ] - 257 -> 256 [ label = "()" ] - 258 -> 255 [ label = "()" ] - 259 -> 258 [ label = "()" ] - 259 -> 256 [ label = "()" ] - 260 -> 258 [ label = "()" ] - 261 -> 260 [ label = "()" ] - 262 -> 260 [ label = "()" ] - 262 -> 259 [ label = "()" ] - 263 -> 261 [ label = "()" ] - 263 -> 262 [ label = "()" ] - 264 -> 263 [ label = "()" ] - 264 -> 257 [ label = "()" ] - 265 -> 264 [ label = "()" ] - 266 -> 265 [ label = "()" ] - 267 -> 266 [ label = "()" ] - 268 -> 265 [ label = "()" ] - 269 -> 268 [ label = "()" ] - 269 -> 267 [ label = "()" ] - 270 -> 269 [ label = "()" ] - 271 -> 270 [ label = "()" ] - 272 -> 271 [ label = "()" ] - 273 -> 272 [ label = "()" ] - 274 -> 273 [ label = "()" ] - 275 -> 274 [ label = "()" ] - 276 -> 275 [ label = "()" ] - 277 -> 276 [ label = "()" ] - 278 -> 277 [ label = "()" ] - 279 -> 278 [ label = "()" ] - 280 -> 279 [ label = "()" ] - 281 -> 280 [ label = "()" ] - 282 -> 281 [ label = "()" ] - 283 -> 282 [ label = "()" ] - 284 -> 283 [ label = "()" ] - 285 -> 284 [ label = "()" ] - 286 -> 285 [ label = "()" ] - 287 -> 285 [ label = "()" ] - 288 -> 286 [ label = "()" ] - 288 -> 287 [ label = "()" ] - 289 -> 288 [ label = "()" ] - 290 -> 289 [ label = "()" ] - 291 -> 290 [ label = "()" ] - 292 -> 291 [ label = "()" ] - 293 -> 292 [ label = "()" ] - 294 -> 293 [ label = "()" ] - 295 -> 294 [ label = "()" ] - 296 -> 295 [ label = "()" ] - 297 -> 296 [ label = "()" ] - 298 -> 297 [ label = "()" ] - 299 -> 298 [ label = "()" ] - 300 -> 299 [ label = "()" ] - 301 -> 300 [ label = "()" ] - 302 -> 301 [ label = "()" ] - 303 -> 300 [ label = "()" ] - 304 -> 301 [ label = "()" ] - 304 -> 303 [ label = "()" ] - 305 -> 304 [ label = "()" ] - 305 -> 302 [ label = "()" ] - 306 -> 305 [ label = "()" ] - 307 -> 306 [ label = "()" ] - 308 -> 307 [ label = "()" ] - 309 -> 308 [ label = "()" ] - 310 -> 309 [ label = "()" ] - 311 -> 310 [ label = "()" ] - 312 -> 311 [ label = "()" ] - 313 -> 312 [ label = "()" ] - }"#); - pub static ref LATE_JOIN2: String = String::from(r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 7 [ label = "7" ] - 8 [ label = "8" ] - 9 [ label = "9" ] - 10 [ label = "10" ] - 11 [ label = "11" ] - 12 [ label = "12" ] - 13 [ label = "13" ] - 14 [ label = "14" ] - 15 [ label = "15" ] - 16 [ label = "16" ] - 17 [ label = "17" ] - 18 [ label = "18" ] - 19 [ label = "19" ] - 20 [ label = "20" ] - 21 [ label = "21" ] - 22 [ label = "22" ] - 23 [ label = "23" ] - 24 [ label = "24" ] - 25 [ label = "25" ] - 26 [ label = "26" ] - 27 [ label = "27" ] - 28 [ label = "28" ] - 29 [ label = "29" ] - 30 [ label = "30" ] - 31 [ label = "31" ] - 32 [ label = "32" ] - 33 [ label = "33" ] - 34 [ label = "34" ] - 35 [ label = "35" ] - 36 [ label = "36" ] - 37 [ label = "37" ] - 38 [ label = "38" ] - 39 [ label = "39" ] - 40 [ label = "40" ] - 41 [ label = "41" ] - 42 [ label = "42" ] - 43 [ label = "43" ] - 44 [ label = "44" ] - 45 [ label = "45" ] - 46 [ label = "46" ] - 47 [ label = "47" ] - 48 [ label = "48" ] - 49 [ label = "49" ] - 50 [ label = "50" ] - 51 [ label = "51" ] - 52 [ label = "52" ] - 53 [ label = "53" ] - 54 [ label = "54" ] - 55 [ label = "55" ] - 56 [ label = "56" ] - 57 [ label = "57" ] - 58 [ label = "58" ] - 59 [ label = "59" ] - 60 [ label = "60" ] - 61 [ label = "61" ] - 62 [ label = "62" ] - 63 [ label = "63" ] - 64 [ label = "64" ] - 65 [ label = "65" ] - 66 [ label = "66" ] - 67 [ label = "67" ] - 68 [ label = "68" ] - 69 [ label = "69" ] - 70 [ label = "70" ] - 71 [ label = "71" ] - 72 [ label = "72" ] - 73 [ label = "73" ] - 74 [ label = "74" ] - 75 [ label = "75" ] - 76 [ label = "76" ] - 77 [ label = "77" ] - 78 [ label = "78" ] - 79 [ label = "79" ] - 80 [ label = "80" ] - 81 [ label = "81" ] - 82 [ label = "82" ] - 83 [ label = "83" ] - 84 [ label = "84" ] - 85 [ label = "85" ] - 86 [ label = "86" ] - 87 [ label = "87" ] - 88 [ label = "88" ] - 89 [ label = "89" ] - 90 [ label = "90" ] - 91 [ label = "91" ] - 92 [ label = "92" ] - 93 [ label = "93" ] - 94 [ label = "94" ] - 95 [ label = "95" ] - 96 [ label = "96" ] - 97 [ label = "97" ] - 98 [ label = "98" ] - 99 [ label = "99" ] - 100 [ label = "100" ] - 101 [ label = "101" ] - 102 [ label = "102" ] - 103 [ label = "103" ] - 104 [ label = "104" ] - 105 [ label = "105" ] - 106 [ label = "106" ] - 107 [ label = "107" ] - 108 [ label = "108" ] - 109 [ label = "109" ] - 110 [ label = "110" ] - 111 [ label = "111" ] - 112 [ label = "112" ] - 113 [ label = "113" ] - 114 [ label = "114" ] - 115 [ label = "115" ] - 116 [ label = "116" ] - 117 [ label = "117" ] - 118 [ label = "118" ] - 119 [ label = "119" ] - 120 [ label = "120" ] - 121 [ label = "121" ] - 122 [ label = "122" ] - 123 [ label = "123" ] - 124 [ label = "124" ] - 125 [ label = "125" ] - 126 [ label = "126" ] - 127 [ label = "127" ] - 128 [ label = "128" ] - 129 [ label = "129" ] - 130 [ label = "130" ] - 131 [ label = "131" ] - 132 [ label = "132" ] - 133 [ label = "133" ] - 134 [ label = "134" ] - 135 [ label = "135" ] - 136 [ label = "136" ] - 137 [ label = "137" ] - 138 [ label = "138" ] - 139 [ label = "139" ] - 140 [ label = "140" ] - 141 [ label = "141" ] - 142 [ label = "142" ] - 143 [ label = "143" ] - 144 [ label = "144" ] - 145 [ label = "145" ] - 146 [ label = "146" ] - 147 [ label = "147" ] - 148 [ label = "148" ] - 149 [ label = "149" ] - 150 [ label = "150" ] - 151 [ label = "151" ] - 152 [ label = "152" ] - 153 [ label = "153" ] - 154 [ label = "154" ] - 155 [ label = "155" ] - 156 [ label = "156" ] - 157 [ label = "157" ] - 158 [ label = "158" ] - 159 [ label = "159" ] - 160 [ label = "160" ] - 161 [ label = "161" ] - 162 [ label = "162" ] - 163 [ label = "163" ] - 164 [ label = "164" ] - 165 [ label = "165" ] - 166 [ label = "166" ] - 167 [ label = "167" ] - 168 [ label = "168" ] - 169 [ label = "169" ] - 170 [ label = "170" ] - 171 [ label = "171" ] - 172 [ label = "172" ] - 173 [ label = "173" ] - 174 [ label = "174" ] - 175 [ label = "175" ] - 176 [ label = "176" ] - 177 [ label = "177" ] - 178 [ label = "178" ] - 179 [ label = "179" ] - 180 [ label = "180" ] - 181 [ label = "181" ] - 182 [ label = "182" ] - 183 [ label = "183" ] - 184 [ label = "184" ] - 185 [ label = "185" ] - 186 [ label = "186" ] - 187 [ label = "187" ] - 188 [ label = "188" ] - 189 [ label = "189" ] - 190 [ label = "190" ] - 191 [ label = "191" ] - 192 [ label = "192" ] - 193 [ label = "193" ] - 194 [ label = "194" ] - 195 [ label = "195" ] - 196 [ label = "196" ] - 197 [ label = "197" ] - 198 [ label = "198" ] - 199 [ label = "199" ] - 200 [ label = "200" ] - 201 [ label = "201" ] - 202 [ label = "202" ] - 203 [ label = "203" ] - 204 [ label = "204" ] - 205 [ label = "205" ] - 206 [ label = "206" ] - 207 [ label = "207" ] - 208 [ label = "208" ] - 209 [ label = "209" ] - 210 [ label = "210" ] - 211 [ label = "211" ] - 212 [ label = "212" ] - 213 [ label = "213" ] - 214 [ label = "214" ] - 215 [ label = "215" ] - 216 [ label = "216" ] - 217 [ label = "217" ] - 218 [ label = "218" ] - 219 [ label = "219" ] - 220 [ label = "220" ] - 221 [ label = "221" ] - 222 [ label = "222" ] - 223 [ label = "223" ] - 224 [ label = "224" ] - 225 [ label = "225" ] - 226 [ label = "226" ] - 227 [ label = "227" ] - 228 [ label = "228" ] - 229 [ label = "229" ] - 230 [ label = "230" ] - 231 [ label = "231" ] - 232 [ label = "232" ] - 233 [ label = "233" ] - 234 [ label = "234" ] - 235 [ label = "235" ] - 236 [ label = "236" ] - 237 [ label = "237" ] - 238 [ label = "238" ] - 239 [ label = "239" ] - 240 [ label = "240" ] - 241 [ label = "241" ] - 242 [ label = "242" ] - 243 [ label = "243" ] - 244 [ label = "244" ] - 245 [ label = "245" ] - 246 [ label = "246" ] - 247 [ label = "247" ] - 248 [ label = "248" ] - 249 [ label = "249" ] - 250 [ label = "250" ] - 251 [ label = "251" ] - 252 [ label = "252" ] - 253 [ label = "253" ] - 254 [ label = "254" ] - 255 [ label = "255" ] - 256 [ label = "256" ] - 257 [ label = "257" ] - 258 [ label = "258" ] - 259 [ label = "259" ] - 260 [ label = "260" ] - 261 [ label = "261" ] - 262 [ label = "262" ] - 263 [ label = "263" ] - 264 [ label = "264" ] - 265 [ label = "265" ] - 266 [ label = "266" ] - 267 [ label = "267" ] - 268 [ label = "268" ] - 269 [ label = "269" ] - 270 [ label = "270" ] - 271 [ label = "271" ] - 272 [ label = "272" ] - 273 [ label = "273" ] - 274 [ label = "274" ] - 275 [ label = "275" ] - 276 [ label = "276" ] - 277 [ label = "277" ] - 278 [ label = "278" ] - 279 [ label = "279" ] - 280 [ label = "280" ] - 281 [ label = "281" ] - 282 [ label = "282" ] - 283 [ label = "283" ] - 284 [ label = "284" ] - 285 [ label = "285" ] - 286 [ label = "286" ] - 287 [ label = "287" ] - 288 [ label = "288" ] - 289 [ label = "289" ] - 290 [ label = "290" ] - 291 [ label = "291" ] - 292 [ label = "292" ] - 293 [ label = "293" ] - 294 [ label = "294" ] - 295 [ label = "295" ] - 296 [ label = "296" ] - 297 [ label = "297" ] - 298 [ label = "298" ] - 299 [ label = "299" ] - 300 [ label = "300" ] - 301 [ label = "301" ] - 302 [ label = "302" ] - 303 [ label = "303" ] - 304 [ label = "304" ] - 6 -> 5 [ label = "()" ] - 7 -> 6 [ label = "()" ] - 8 -> 7 [ label = "()" ] - 9 -> 8 [ label = "()" ] - 10 -> 9 [ label = "()" ] - 11 -> 10 [ label = "()" ] - 12 -> 11 [ label = "()" ] - 13 -> 12 [ label = "()" ] - 14 -> 3 [ label = "()" ] - 14 -> 13 [ label = "()" ] - 15 -> 14 [ label = "()" ] - 16 -> 15 [ label = "()" ] - 17 -> 16 [ label = "()" ] - 18 -> 17 [ label = "()" ] - 19 -> 18 [ label = "()" ] - 20 -> 19 [ label = "()" ] - 21 -> 20 [ label = "()" ] - 22 -> 2 [ label = "()" ] - 22 -> 18 [ label = "()" ] - 23 -> 22 [ label = "()" ] - 24 -> 23 [ label = "()" ] - 25 -> 24 [ label = "()" ] - 26 -> 25 [ label = "()" ] - 26 -> 21 [ label = "()" ] - 27 -> 22 [ label = "()" ] - 28 -> 24 [ label = "()" ] - 28 -> 27 [ label = "()" ] - 29 -> 28 [ label = "()" ] - 30 -> 29 [ label = "()" ] - 31 -> 30 [ label = "()" ] - 32 -> 31 [ label = "()" ] - 33 -> 32 [ label = "()" ] - 33 -> 25 [ label = "()" ] - 34 -> 32 [ label = "()" ] - 34 -> 26 [ label = "()" ] - 35 -> 34 [ label = "()" ] - 36 -> 35 [ label = "()" ] - 37 -> 36 [ label = "()" ] - 38 -> 37 [ label = "()" ] - 39 -> 38 [ label = "()" ] - 40 -> 39 [ label = "()" ] - 41 -> 40 [ label = "()" ] - 42 -> 41 [ label = "()" ] - 43 -> 42 [ label = "()" ] - 44 -> 43 [ label = "()" ] - 45 -> 34 [ label = "()" ] - 45 -> 33 [ label = "()" ] - 46 -> 41 [ label = "()" ] - 46 -> 45 [ label = "()" ] - 47 -> 44 [ label = "()" ] - 47 -> 46 [ label = "()" ] - 48 -> 45 [ label = "()" ] - 48 -> 4 [ label = "()" ] - 49 -> 41 [ label = "()" ] - 49 -> 45 [ label = "()" ] - 50 -> 44 [ label = "()" ] - 50 -> 49 [ label = "()" ] - 51 -> 47 [ label = "()" ] - 51 -> 50 [ label = "()" ] - 52 -> 48 [ label = "()" ] - 52 -> 51 [ label = "()" ] - 53 -> 52 [ label = "()" ] - 53 -> 51 [ label = "()" ] - 54 -> 52 [ label = "()" ] - 55 -> 54 [ label = "()" ] - 56 -> 52 [ label = "()" ] - 57 -> 56 [ label = "()" ] - 58 -> 57 [ label = "()" ] - 59 -> 58 [ label = "()" ] - 60 -> 59 [ label = "()" ] - 61 -> 60 [ label = "()" ] - 62 -> 61 [ label = "()" ] - 63 -> 62 [ label = "()" ] - 64 -> 63 [ label = "()" ] - 65 -> 64 [ label = "()" ] - 66 -> 48 [ label = "()" ] - 66 -> 51 [ label = "()" ] - 67 -> 53 [ label = "()" ] - 67 -> 66 [ label = "()" ] - 68 -> 67 [ label = "()" ] - 68 -> 65 [ label = "()" ] - 69 -> 68 [ label = "()" ] - 70 -> 55 [ label = "()" ] - 70 -> 69 [ label = "()" ] - 71 -> 55 [ label = "()" ] - 71 -> 68 [ label = "()" ] - 72 -> 71 [ label = "()" ] - 72 -> 70 [ label = "()" ] - 74 -> 73 [ label = "()" ] - 75 -> 74 [ label = "()" ] - 75 -> 71 [ label = "()" ] - 76 -> 74 [ label = "()" ] - 77 -> 73 [ label = "()" ] - 77 -> 55 [ label = "()" ] - 78 -> 77 [ label = "()" ] - 78 -> 72 [ label = "()" ] - 79 -> 77 [ label = "()" ] - 80 -> 79 [ label = "()" ] - 80 -> 78 [ label = "()" ] - 81 -> 79 [ label = "()" ] - 82 -> 81 [ label = "()" ] - 83 -> 82 [ label = "()" ] - 84 -> 83 [ label = "()" ] - 85 -> 84 [ label = "()" ] - 85 -> 80 [ label = "()" ] - 86 -> 84 [ label = "()" ] - 87 -> 86 [ label = "()" ] - 88 -> 87 [ label = "()" ] - 89 -> 88 [ label = "()" ] - 90 -> 89 [ label = "()" ] - 90 -> 85 [ label = "()" ] - 91 -> 89 [ label = "()" ] - 92 -> 91 [ label = "()" ] - 93 -> 92 [ label = "()" ] - 94 -> 93 [ label = "()" ] - 95 -> 94 [ label = "()" ] - 96 -> 95 [ label = "()" ] - 97 -> 96 [ label = "()" ] - 98 -> 97 [ label = "()" ] - 99 -> 98 [ label = "()" ] - 100 -> 99 [ label = "()" ] - 101 -> 100 [ label = "()" ] - 102 -> 101 [ label = "()" ] - 103 -> 102 [ label = "()" ] - 103 -> 68 [ label = "()" ] - 104 -> 93 [ label = "()" ] - 104 -> 90 [ label = "()" ] - 105 -> 102 [ label = "()" ] - 105 -> 104 [ label = "()" ] - 106 -> 103 [ label = "()" ] - 106 -> 105 [ label = "()" ] - 107 -> 1 [ label = "()" ] - 107 -> 106 [ label = "()" ] - 108 -> 107 [ label = "()" ] - 108 -> 106 [ label = "()" ] - 109 -> 108 [ label = "()" ] - 110 -> 108 [ label = "()" ] - 111 -> 109 [ label = "()" ] - 111 -> 110 [ label = "()" ] - 112 -> 110 [ label = "()" ] - 113 -> 74 [ label = "()" ] - 113 -> 112 [ label = "()" ] - 114 -> 112 [ label = "()" ] - 114 -> 111 [ label = "()" ] - 115 -> 74 [ label = "()" ] - 115 -> 114 [ label = "()" ] - 116 -> 74 [ label = "()" ] - 116 -> 114 [ label = "()" ] - 117 -> 116 [ label = "()" ] - 117 -> 115 [ label = "()" ] - 118 -> 117 [ label = "()" ] - 118 -> 113 [ label = "()" ] - 119 -> 113 [ label = "()" ] - 119 -> 116 [ label = "()" ] - 120 -> 117 [ label = "()" ] - 120 -> 119 [ label = "()" ] - 121 -> 120 [ label = "()" ] - 121 -> 75 [ label = "()" ] - 122 -> 121 [ label = "()" ] - 122 -> 118 [ label = "()" ] - 123 -> 122 [ label = "()" ] - 123 -> 113 [ label = "()" ] - 124 -> 123 [ label = "()" ] - 125 -> 124 [ label = "()" ] - 126 -> 124 [ label = "()" ] - 127 -> 125 [ label = "()" ] - 127 -> 126 [ label = "()" ] - 128 -> 127 [ label = "()" ] - 129 -> 123 [ label = "()" ] - 130 -> 129 [ label = "()" ] - 131 -> 130 [ label = "()" ] - 132 -> 131 [ label = "()" ] - 133 -> 132 [ label = "()" ] - 134 -> 133 [ label = "()" ] - 135 -> 134 [ label = "()" ] - 136 -> 135 [ label = "()" ] - 137 -> 136 [ label = "()" ] - 138 -> 137 [ label = "()" ] - 139 -> 138 [ label = "()" ] - 140 -> 139 [ label = "()" ] - 141 -> 140 [ label = "()" ] - 142 -> 141 [ label = "()" ] - 143 -> 142 [ label = "()" ] - 144 -> 143 [ label = "()" ] - 145 -> 144 [ label = "()" ] - 146 -> 145 [ label = "()" ] - 147 -> 146 [ label = "()" ] - 148 -> 147 [ label = "()" ] - 149 -> 148 [ label = "()" ] - 150 -> 149 [ label = "()" ] - 151 -> 150 [ label = "()" ] - 152 -> 151 [ label = "()" ] - 153 -> 152 [ label = "()" ] - 154 -> 153 [ label = "()" ] - 155 -> 154 [ label = "()" ] - 156 -> 155 [ label = "()" ] - 157 -> 156 [ label = "()" ] - 158 -> 157 [ label = "()" ] - 159 -> 158 [ label = "()" ] - 160 -> 159 [ label = "()" ] - 161 -> 129 [ label = "()" ] - 161 -> 128 [ label = "()" ] - 162 -> 161 [ label = "()" ] - 162 -> 128 [ label = "()" ] - 163 -> 162 [ label = "()" ] - 163 -> 128 [ label = "()" ] - 164 -> 163 [ label = "()" ] - 165 -> 164 [ label = "()" ] - 166 -> 130 [ label = "()" ] - 166 -> 165 [ label = "()" ] - 167 -> 165 [ label = "()" ] - 168 -> 167 [ label = "()" ] - 169 -> 168 [ label = "()" ] - 170 -> 166 [ label = "()" ] - 170 -> 169 [ label = "()" ] - 171 -> 170 [ label = "()" ] - 172 -> 171 [ label = "()" ] - 173 -> 172 [ label = "()" ] - 174 -> 168 [ label = "()" ] - 175 -> 171 [ label = "()" ] - 175 -> 174 [ label = "()" ] - 176 -> 175 [ label = "()" ] - 177 -> 176 [ label = "()" ] - 178 -> 172 [ label = "()" ] - 178 -> 177 [ label = "()" ] - 179 -> 173 [ label = "()" ] - 179 -> 178 [ label = "()" ] - 180 -> 179 [ label = "()" ] - 180 -> 177 [ label = "()" ] - 181 -> 76 [ label = "()" ] - 181 -> 180 [ label = "()" ] - 182 -> 181 [ label = "()" ] - 182 -> 180 [ label = "()" ] - 183 -> 181 [ label = "()" ] - 183 -> 180 [ label = "()" ] - 184 -> 183 [ label = "()" ] - 184 -> 180 [ label = "()" ] - 185 -> 184 [ label = "()" ] - 185 -> 182 [ label = "()" ] - 186 -> 185 [ label = "()" ] - 187 -> 186 [ label = "()" ] - 188 -> 187 [ label = "()" ] - 189 -> 188 [ label = "()" ] - 190 -> 189 [ label = "()" ] - 191 -> 190 [ label = "()" ] - 192 -> 191 [ label = "()" ] - 193 -> 192 [ label = "()" ] - 194 -> 134 [ label = "()" ] - 194 -> 193 [ label = "()" ] - 195 -> 134 [ label = "()" ] - 195 -> 191 [ label = "()" ] - 196 -> 195 [ label = "()" ] - 196 -> 193 [ label = "()" ] - 197 -> 195 [ label = "()" ] - 197 -> 193 [ label = "()" ] - 198 -> 197 [ label = "()" ] - 198 -> 194 [ label = "()" ] - 199 -> 198 [ label = "()" ] - 200 -> 198 [ label = "()" ] - 200 -> 196 [ label = "()" ] - 201 -> 199 [ label = "()" ] - 201 -> 200 [ label = "()" ] - 202 -> 201 [ label = "()" ] - 203 -> 202 [ label = "()" ] - 204 -> 201 [ label = "()" ] - 204 -> 200 [ label = "()" ] - 205 -> 203 [ label = "()" ] - 205 -> 204 [ label = "()" ] - 206 -> 205 [ label = "()" ] - 206 -> 204 [ label = "()" ] - 207 -> 206 [ label = "()" ] - 208 -> 206 [ label = "()" ] - 208 -> 204 [ label = "()" ] - 209 -> 185 [ label = "()" ] - 210 -> 209 [ label = "()" ] - 211 -> 195 [ label = "()" ] - 211 -> 210 [ label = "()" ] - 212 -> 201 [ label = "()" ] - 212 -> 211 [ label = "()" ] - 213 -> 212 [ label = "()" ] - 213 -> 206 [ label = "()" ] - 214 -> 213 [ label = "()" ] - 214 -> 208 [ label = "()" ] - 215 -> 214 [ label = "()" ] - 215 -> 208 [ label = "()" ] - 216 -> 212 [ label = "()" ] - 216 -> 207 [ label = "()" ] - 217 -> 215 [ label = "()" ] - 217 -> 216 [ label = "()" ] - 218 -> 214 [ label = "()" ] - 218 -> 216 [ label = "()" ] - 219 -> 218 [ label = "()" ] - 219 -> 217 [ label = "()" ] - 220 -> 219 [ label = "()" ] - 220 -> 215 [ label = "()" ] - 221 -> 220 [ label = "()" ] - 221 -> 215 [ label = "()" ] - 222 -> 221 [ label = "()" ] - 222 -> 218 [ label = "()" ] - 223 -> 221 [ label = "()" ] - 223 -> 217 [ label = "()" ] - 224 -> 222 [ label = "()" ] - 224 -> 223 [ label = "()" ] - 225 -> 224 [ label = "()" ] - 225 -> 223 [ label = "()" ] - 226 -> 225 [ label = "()" ] - 227 -> 225 [ label = "()" ] - 228 -> 227 [ label = "()" ] - 229 -> 228 [ label = "()" ] - 230 -> 227 [ label = "()" ] - 230 -> 226 [ label = "()" ] - 231 -> 230 [ label = "()" ] - 231 -> 229 [ label = "()" ] - 232 -> 231 [ label = "()" ] - 232 -> 228 [ label = "()" ] - 233 -> 232 [ label = "()" ] - 233 -> 229 [ label = "()" ] - 234 -> 232 [ label = "()" ] - 234 -> 229 [ label = "()" ] - 235 -> 234 [ label = "()" ] - 235 -> 233 [ label = "()" ] - 236 -> 235 [ label = "()" ] - 237 -> 236 [ label = "()" ] - 238 -> 237 [ label = "()" ] - 239 -> 238 [ label = "()" ] - 240 -> 239 [ label = "()" ] - 241 -> 240 [ label = "()" ] - 242 -> 241 [ label = "()" ] - 243 -> 242 [ label = "()" ] - 244 -> 243 [ label = "()" ] - 245 -> 244 [ label = "()" ] - 246 -> 245 [ label = "()" ] - 247 -> 246 [ label = "()" ] - 248 -> 246 [ label = "()" ] - 249 -> 248 [ label = "()" ] - 249 -> 247 [ label = "()" ] - 250 -> 249 [ label = "()" ] - 250 -> 247 [ label = "()" ] - 251 -> 250 [ label = "()" ] - 252 -> 250 [ label = "()" ] - 253 -> 252 [ label = "()" ] - 254 -> 251 [ label = "()" ] - 254 -> 253 [ label = "()" ] - 255 -> 254 [ label = "()" ] - 256 -> 255 [ label = "()" ] - 257 -> 256 [ label = "()" ] - 258 -> 257 [ label = "()" ] - 259 -> 258 [ label = "()" ] - 260 -> 259 [ label = "()" ] - 261 -> 260 [ label = "()" ] - 262 -> 261 [ label = "()" ] - 263 -> 262 [ label = "()" ] - 264 -> 263 [ label = "()" ] - 265 -> 264 [ label = "()" ] - 266 -> 265 [ label = "()" ] - 267 -> 263 [ label = "()" ] - 268 -> 267 [ label = "()" ] - 268 -> 266 [ label = "()" ] - 269 -> 250 [ label = "()" ] - 270 -> 269 [ label = "()" ] - 270 -> 268 [ label = "()" ] - 271 -> 137 [ label = "()" ] - 271 -> 270 [ label = "()" ] - 272 -> 139 [ label = "()" ] - 272 -> 271 [ label = "()" ] - 273 -> 272 [ label = "()" ] - 274 -> 273 [ label = "()" ] - 275 -> 274 [ label = "()" ] - 276 -> 275 [ label = "()" ] - 277 -> 276 [ label = "()" ] - 278 -> 270 [ label = "()" ] - 278 -> 268 [ label = "()" ] - 279 -> 278 [ label = "()" ] - 279 -> 268 [ label = "()" ] - 280 -> 279 [ label = "()" ] - 281 -> 280 [ label = "()" ] - 282 -> 281 [ label = "()" ] - 283 -> 282 [ label = "()" ] - 284 -> 283 [ label = "()" ] - 285 -> 284 [ label = "()" ] - 286 -> 285 [ label = "()" ] - 287 -> 278 [ label = "()" ] - 287 -> 268 [ label = "()" ] - 288 -> 286 [ label = "()" ] - 288 -> 287 [ label = "()" ] - 289 -> 288 [ label = "()" ] - 289 -> 279 [ label = "()" ] - 290 -> 154 [ label = "()" ] - 290 -> 289 [ label = "()" ] - 291 -> 160 [ label = "()" ] - 291 -> 290 [ label = "()" ] - 292 -> 289 [ label = "()" ] - 293 -> 292 [ label = "()" ] - 294 -> 293 [ label = "()" ] - 295 -> 294 [ label = "()" ] - 296 -> 269 [ label = "()" ] - 297 -> 296 [ label = "()" ] - 298 -> 297 [ label = "()" ] - 299 -> 298 [ label = "()" ] - 300 -> 299 [ label = "()" ] - 300 -> 295 [ label = "()" ] - 301 -> 291 [ label = "()" ] - 301 -> 300 [ label = "()" ] - - 304 -> 303 [ label = "()" ] - 303 -> 302 [ label = "()" ] - }"#); - pub static ref HIGH_COMPLEX_GRAPH: String = String::from(r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 7 [ label = "7" ] - 8 [ label = "8" ] - 9 [ label = "9" ] - 10 [ label = "10" ] - 11 [ label = "11" ] - 12 [ label = "12" ] - 13 [ label = "13" ] - 14 [ label = "14" ] - 15 [ label = "15" ] - 16 [ label = "16" ] - 17 [ label = "17" ] - 18 [ label = "18" ] - 19 [ label = "19" ] - 20 [ label = "20" ] - 21 [ label = "21" ] - 22 [ label = "22" ] - 23 [ label = "23" ] - 24 [ label = "24" ] - 25 [ label = "25" ] - 26 [ label = "26" ] - 27 [ label = "27" ] - 28 [ label = "28" ] - 29 [ label = "29" ] - 30 [ label = "30" ] - 31 [ label = "31" ] - 32 [ label = "32" ] - 33 [ label = "33" ] - 34 [ label = "34" ] - 35 [ label = "35" ] - 36 [ label = "36" ] - 37 [ label = "37" ] - 38 [ label = "38" ] - 39 [ label = "39" ] - 40 [ label = "40" ] - 41 [ label = "41" ] - 42 [ label = "42" ] - 43 [ label = "43" ] - 44 [ label = "44" ] - 45 [ label = "45" ] - 46 [ label = "46" ] - 47 [ label = "47" ] - 48 [ label = "48" ] - 49 [ label = "49" ] - 50 [ label = "50" ] - 51 [ label = "51" ] - 52 [ label = "52" ] - 53 [ label = "53" ] - 54 [ label = "54" ] - 55 [ label = "55" ] - 2 -> 1 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 6 -> 5 [ label = "()" ] - 7 -> 6 [ label = "()" ] - 8 -> 7 [ label = "()" ] - 9 -> 8 [ label = "()" ] - 10 -> 9 [ label = "()" ] - 11 -> 10 [ label = "()" ] - 12 -> 11 [ label = "()" ] - 13 -> 3 [ label = "()" ] - 13 -> 12 [ label = "()" ] - 14 -> 13 [ label = "()" ] - 15 -> 14 [ label = "()" ] - 16 -> 15 [ label = "()" ] - 18 -> 17 [ label = "()" ] - 18 -> 16 [ label = "()" ] - 19 -> 18 [ label = "()" ] - 20 -> 19 [ label = "()" ] - 21 -> 20 [ label = "()" ] - 22 -> 2 [ label = "()" ] - 22 -> 19 [ label = "()" ] - 23 -> 22 [ label = "()" ] - 23 -> 21 [ label = "()" ] - 24 -> 23 [ label = "()" ] - 25 -> 24 [ label = "()" ] - 26 -> 25 [ label = "()" ] - 27 -> 26 [ label = "()" ] - 28 -> 27 [ label = "()" ] - 29 -> 28 [ label = "()" ] - 30 -> 29 [ label = "()" ] - 31 -> 30 [ label = "()" ] - 32 -> 31 [ label = "()" ] - 33 -> 32 [ label = "()" ] - 34 -> 33 [ label = "()" ] - 35 -> 33 [ label = "()" ] - 36 -> 34 [ label = "()" ] - 36 -> 35 [ label = "()" ] - 37 -> 36 [ label = "()" ] - 38 -> 37 [ label = "()" ] - 39 -> 38 [ label = "()" ] - 40 -> 39 [ label = "()" ] - 42 -> 41 [ label = "()" ] - 42 -> 40 [ label = "()" ] - 43 -> 42 [ label = "()" ] - 44 -> 41 [ label = "()" ] - 44 -> 40 [ label = "()" ] - 45 -> 41 [ label = "()" ] - 45 -> 40 [ label = "()" ] - 46 -> 43 [ label = "()" ] - 46 -> 45 [ label = "()" ] - 47 -> 44 [ label = "()" ] - 47 -> 46 [ label = "()" ] - 48 -> 44 [ label = "()" ] - 48 -> 46 [ label = "()" ] - 49 -> 46 [ label = "()" ] - 50 -> 49 [ label = "()" ] - 50 -> 47 [ label = "()" ] - 51 -> 49 [ label = "()" ] - 51 -> 48 [ label = "()" ] - 52 -> 51 [ label = "()" ] - 52 -> 50 [ label = "()" ] - 54 -> 53 [ label = "()" ] - 55 -> 54 [ label = "()" ] - 55 -> 22 [ label = "()" ] - }"#); -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/tests.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/tests.rs deleted file mode 100644 index 809291288..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/tests.rs +++ /dev/null @@ -1,103 +0,0 @@ -#[test] -pub fn test_merge_fast_forward() { - use hdk::prelude::*; - - use crate::link_adapter::workspace::Workspace; - use crate::retriever::{Associations, GraphInput, MockPerspectiveGraph, GLOBAL_MOCKED_GRAPH}; - - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::new(GraphInput { - nodes: 6, - associations: vec![ - Associations { - node_source: 1, - node_targets: vec![0], - }, - Associations { - node_source: 2, - node_targets: vec![0], - }, - Associations { - node_source: 3, - node_targets: vec![1], - }, - Associations { - node_source: 4, - node_targets: vec![2], - }, - Associations { - node_source: 5, - node_targets: vec![3, 4], - }, - ], - }); - } - update(); - - let mut workspace = Workspace::new(); - let res = workspace.collect_until_common_ancestor::( - ActionHash::from_raw_36(vec![5; 36]), - ActionHash::from_raw_36(vec![4; 36]), - ); - assert!(res.is_ok()); - assert_eq!(res.unwrap(), ActionHash::from_raw_36(vec![0; 36])); -} - -#[test] -pub fn test_fork_with_none_source() { - use hdk::prelude::*; - - use crate::link_adapter::workspace::Workspace; - use crate::retriever::{GraphInput, MockPerspectiveGraph, GLOBAL_MOCKED_GRAPH}; - - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::new(GraphInput { - nodes: 2, - associations: vec![], - }); - } - update(); - - let mut workspace = Workspace::new(); - let res = workspace.collect_until_common_ancestor::( - ActionHash::from_raw_36(vec![0; 36]), - ActionHash::from_raw_36(vec![1; 36]), - ); - assert!(res.is_ok()); - //TODO; this is a problem since our pull code is not expecting to find a common ancestor, since both tips are forks - //but in the case below where we have a merge entry we need to register the None node as a common ancestor so we can traverse the "their" branch back until the root - //and not break the traversal with common ancestor as the "ours" node as was happening before - // - //So what do we actually need to return here? - assert_eq!(res.unwrap(), ActionHash::from_raw_36(vec![0xdb; 36])); -} - -#[test] -pub fn test_merge_fast_forward_none_source() { - use hdk::prelude::*; - - use crate::link_adapter::workspace::Workspace; - use crate::retriever::{Associations, GraphInput, MockPerspectiveGraph, GLOBAL_MOCKED_GRAPH}; - - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::new(GraphInput { - nodes: 3, - associations: vec![Associations { - node_source: 2, - node_targets: vec![0, 1], - }], - }); - } - update(); - - let mut workspace = Workspace::new(); - let res = workspace.collect_until_common_ancestor::( - ActionHash::from_raw_36(vec![2; 36]), - ActionHash::from_raw_36(vec![1; 36]), - ); - assert!(res.is_ok()); - assert_eq!(res.unwrap(), ActionHash::from_raw_36(vec![0xdb; 36])); -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/topo_sort.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/topo_sort.rs deleted file mode 100644 index d33b5f015..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/topo_sort.rs +++ /dev/null @@ -1,143 +0,0 @@ -use crate::errors::{SocialContextError, SocialContextResult}; -use hdk::prelude::*; -use perspective_diff_sync_integrity::PerspectiveDiffEntryReference; -use std::collections::BTreeSet; - -// Applies Kahn's algorithm for topologically sorting a graph -pub fn topo_sort_diff_references( - arr: &Vec<( - HoloHash, - PerspectiveDiffEntryReference, - )>, -) -> SocialContextResult< - Vec<( - HoloHash, - PerspectiveDiffEntryReference, - )>, -> { - type Hash = HoloHash; - let mut result = Vec::<(Hash, PerspectiveDiffEntryReference)>::new(); - - // first collect orphaned nodes (=without parent) as starting points: - let mut orphaned_nodes: Vec<(Hash, PerspectiveDiffEntryReference)> = arr - .iter() - .filter(|&e| e.1.parents == None) - .cloned() - .collect(); - - if orphaned_nodes.len() == 0 { - debug!("No orphans found! Length: {}, list: {:?}", arr.len(), arr); - return Err(SocialContextError::InternalError( - "Can't topologically sort list without orphan!", - )); - } - - let mut edges = BTreeSet::new(); - for i in 0..arr.len() { - if let Some(parents) = &arr[i].1.parents { - for p in 0..parents.len() { - let child = arr[i].0.clone(); - let parent = parents[p].clone(); - edges.insert((child, parent)); - } - } - } - - // Starting from the nodes without parents... - while let Some(n) = orphaned_nodes.pop() { - //.. we put them into the result list. - result.push(n.clone()); - - println!("Added orphan {:?}", n); - - // and then we look for any nodes that have it as parent - // (using the edges set) - let edges_with_n_as_parent = edges - .iter() - .filter(|&e| e.1 == n.0) - .cloned() - .collect::>(); - - println!("Edges with orphan as parent {:?}", edges_with_n_as_parent); - - // So for every parent relationship with n as parent... - for edge in &edges_with_n_as_parent { - println!("Removing edge {:?}", edge); - // we remove that edge - edges.remove(edge); - - // and then check if that child of n has any other parents... - let child = edge.0.clone(); - - println!("Found child {:?}", child); - let edges_with_child_as_child = edges - .iter() - .filter(|&e| e.0 == child) - .cloned() - .collect::>(); - - println!("Edges with child as child {:?}", edges_with_child_as_child); - - // if the child does not have any other parents (left unprocessed) - if edges_with_child_as_child.len() == 0 { - // we're good to add the child to the results as well. - let child_item = arr.iter().find(|&e| e.0 == child).ok_or(SocialContextError::InternalError("Topological sort couldn't find child in input vector, which was mentioned in an edge. This can only be an error in the topological sorting code.."))?; - println!("Adding newly orphaned child {:?}", child_item); - orphaned_nodes.push((child.clone(), child_item.1.clone())); - } - } - } - - if edges.len() > 0 { - debug!( - "Unresolved parent links after topologically sorting: {:?}", - edges - ); - - debug!("Number of unresolved parent links {:?}", edges.len()); - debug!("Number of items to sort: {:?}", arr.len()); - Err(SocialContextError::InternalError( - "Cycle or missing nodes detected. Unresolved parent links after topologically sorting.", - )) - //Ok(result) - } else { - Ok(result) - } -} - -#[cfg(test)] -mod tests { - use super::topo_sort_diff_references; - use hdk::prelude::*; - use perspective_diff_sync_integrity::PerspectiveDiffEntryReference; - - #[test] - fn test_topo_sort_diff_references() { - let h1 = HoloHash::::from_raw_36(vec![1; 36]); - let h2 = HoloHash::::from_raw_36(vec![2; 36]); - let h3 = HoloHash::::from_raw_36(vec![3; 36]); - let h4 = HoloHash::::from_raw_36(vec![4; 36]); - - let r1 = PerspectiveDiffEntryReference::new(h1.clone(), Some(vec![h2.clone(), h3.clone()])); - let r2 = PerspectiveDiffEntryReference::new(h2.clone(), Some(vec![h4.clone()])); - let r3 = PerspectiveDiffEntryReference::new(h3.clone(), Some(vec![h4.clone()])); - let r4 = PerspectiveDiffEntryReference::new(h4.clone(), None); - - let e1 = (h1, r1); - let e2 = (h2, r2); - let e3 = (h3, r3); - let e4 = (h4, r4); - - assert_eq!(e1.0, e1.1.diff); - assert_eq!(e2.0, e2.1.diff); - assert_eq!(e3.0, e3.1.diff); - assert_eq!(e4.0, e4.1.diff); - - let test_vec = vec![e1.clone(), e2.clone(), e3.clone(), e4.clone()]; - let expected = vec![e4, e3, e2, e1]; - - let result = topo_sort_diff_references(&test_vec).expect("topo sort to not error"); - - assert_eq!(result, expected); - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs deleted file mode 100644 index f5d8699dc..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs +++ /dev/null @@ -1,1428 +0,0 @@ -use hdk::prelude::*; -use itertools::Itertools; -use perspective_diff_sync_integrity::{ - LinkTypes, PerspectiveDiff, PerspectiveDiffEntryReference, Snapshot, -}; -use petgraph::{ - algo::dominators::simple_fast, - dot::{Config, Dot}, - graph::{DiGraph, Graph, NodeIndex, UnGraph}, -}; -use std::cell::RefCell; -use std::collections::{BTreeMap, VecDeque}; - -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::link_adapter::topo_sort::topo_sort_diff_references; -use crate::retriever::{hash_to_node_id, PerspectiveDiffRetreiver}; -use crate::utils::get_now; -use crate::Hash; - -pub struct Workspace { - pub graph: DiGraph, - pub undirected_graph: UnGraph, - pub node_index_map: BTreeMap>, - pub entry_map: BTreeMap, - pub sorted_diffs: Option>, - pub common_ancestors: Vec, - pub diffs: BTreeMap, - pub back_links: BTreeMap>, - unexplored_side_branches: BTreeSet, -} - -#[derive(Clone)] -struct BfsSearch { - pub found_ancestors: RefCell>, - pub bfs_branches: RefCell>, - pub reached_end: bool, -} - -#[allow(non_snake_case)] -pub fn NULL_NODE() -> ActionHash { - ActionHash::from_raw_36(vec![0xdb; 36]) -} - -impl BfsSearch { - pub fn new(start: Hash) -> BfsSearch { - let branches = RefCell::new(Vec::from([start])); - BfsSearch { - found_ancestors: RefCell::new(Vec::new()), - bfs_branches: branches, - reached_end: false, - } - } -} - -impl std::fmt::Debug for BfsSearch { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - if cfg!(test) { - let ancestors: Vec<_> = self - .found_ancestors - .borrow() - .clone() - .into_iter() - .map(|val| hash_to_node_id(val)) - .collect(); - let branches: Vec<_> = self - .bfs_branches - .borrow() - .clone() - .into_iter() - .map(|val| hash_to_node_id(val)) - .collect(); - write!( - f, - "BfsSearch {{ found_ancestors: {:?},\n bfs_branches: {:?},\n reached_end: {:?} }}", - ancestors, branches, self.reached_end - ) - } else { - write!( - f, - "BfsSearch {{ found_ancestors: {:?},\n bfs_branches: {:?},\n reached_end: {:?} }}", - self.found_ancestors, self.bfs_branches, self.reached_end - ) - } - } -} - -#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Debug)] -enum SearchSide { - Theirs, - Ours, -} - -fn other_side(side: &SearchSide) -> SearchSide { - match side { - SearchSide::Theirs => SearchSide::Ours, - SearchSide::Ours => SearchSide::Theirs, - } -} - -impl Workspace { - pub fn new() -> Workspace { - Workspace { - graph: Graph::new(), - undirected_graph: Graph::new_undirected(), - node_index_map: BTreeMap::new(), - entry_map: BTreeMap::new(), - sorted_diffs: None, - common_ancestors: vec![], - diffs: BTreeMap::new(), - back_links: BTreeMap::new(), - unexplored_side_branches: BTreeSet::new(), - } - } - - // This is the easy case when we only build from one hash. - // (either latest or our current hash, like in render). - // We don't have to check for forks, we just deep search from the given - // diff and terminate at leafs and snapshots. - // Since we don't have to detect and handle forks, we don't need - // to unroll snapshots and just treat them as leafs. - pub fn collect_only_from_latest( - &mut self, - latest: Hash, - ) -> SocialContextResult<()> { - debug!("===Workspace.collect_only_from_latest(): Function start"); - let fn_start = get_now()?.time(); - - // Initializing with only one branch starting from the given hash. - let mut unprocessed_branches = VecDeque::new(); - unprocessed_branches.push_back(latest); - - let mut snapshot_seen = vec![]; - - while !unprocessed_branches.is_empty() { - let current_hash = unprocessed_branches[0].clone(); - - if self.entry_map.contains_key(¤t_hash) && !snapshot_seen.contains(¤t_hash) - { - debug!("===Workspace.collect_only_from_latest(): CIRCLE DETECTED! Closing current branch..."); - unprocessed_branches.pop_front(); - continue; - } - - let current_diff = Self::get_p_diff_reference::(current_hash.clone())?; - - if current_diff.diffs_since_snapshot == 0 { - debug!("===Workspace.collect_only_from_latest(): Found a perspective diff reference containing a snapshot!"); - let snapshot = Self::get_snapshot(current_diff.clone())?; - - if snapshot.is_none() { - debug!("===Workspace.collect_only_from_latest(): ERROR: Expected to find snapshot link on current_diff where diffs_since_snapshot was 0"); - self.handle_parents(current_diff, current_hash, &mut unprocessed_branches); - } else { - let mut snapshot = snapshot.unwrap(); - - let mut last_diff = None; - for i in 0..snapshot.diff_chunks.len() { - let diff_chunk = &snapshot.diff_chunks[i]; - self.entry_map.insert( - diff_chunk.clone(), - PerspectiveDiffEntryReference::new( - diff_chunk.clone(), - last_diff.clone(), - ), - ); - last_diff = Some(vec![diff_chunk.clone()]); - } - - self.entry_map.insert( - current_hash.clone(), - PerspectiveDiffEntryReference::new(current_diff.diff, last_diff.clone()), - ); - - snapshot_seen.append(&mut snapshot.included_diffs); - - // Snapshot terminates like an orphan. - // So we can close this branch and potentially continue - // with other unprocessed branches, if they exist. - unprocessed_branches.pop_front(); - }; - } else { - self.handle_parents(current_diff, current_hash, &mut unprocessed_branches); - } - } - - let fn_end = get_now()?.time(); - debug!("===Workspace.collect_only_from_latest() - Profiling: Took: {} to complete collect_only_from_latest() function", (fn_end - fn_start).num_milliseconds()); - - Ok(()) - } - - fn handle_parents( - &mut self, - current_diff: PerspectiveDiffEntryReference, - current_hash: Hash, - unprocessed_branches: &mut VecDeque, - ) { - if let Some(parents) = ¤t_diff.parents { - for i in 0..parents.len() { - // Depth-first search: - // We are replacing our search position (==current_hash==unprocessed_branches[0]) - // with the first parent. - // Other parents are pushed on the vec as new branches to search later.. - if i == 0 { - unprocessed_branches[0] = parents[i].clone(); - } else { - unprocessed_branches.push_back(parents[i].clone()) - } - } - } else { - // We arrived at a leaf/orphan (no parents). - // So we can close this branch and potentially continue - // with other unprocessed branches, if they exist. - unprocessed_branches.pop_front(); - } - - self.entry_map.insert(current_hash, current_diff); - } - - pub fn sort_graph(&mut self) -> SocialContextResult<()> { - //debug!("===Workspace.sort_graph(): Function start"); - //let fn_start = get_now()?.time(); - - let common_ancestor = self.common_ancestors.last().unwrap(); - - //TODO; this should probably be a Map but tests break when it is a map - let mut sorted: Vec<(Hash, PerspectiveDiffEntryReference)> = Vec::new(); - let mut visited: HashSet = HashSet::new(); - let mut next: VecDeque = VecDeque::new(); - self.unexplored_side_branches = BTreeSet::new(); - //let mut inner_iter = 0; - - next.push_back(common_ancestor.clone()); - - while !next.is_empty() { - let current = next.pop_front().expect("must be Ok since next !is_empty()"); - if !visited.contains(¤t) { - //inner_iter += 1; - //println!("current: {:?}", hash_to_node_id(current.clone())); - match self.back_links.get(¤t) { - Some(children) => { - //println!("--> has {} children, checking the children to see if there is a missing parent link", children.len()); - //println!("Children are: {:#?}", children.clone().into_iter().map(|child| hash_to_node_id(child)).collect::>()); - for child in children.iter() { - let diff = self.diffs.get(&child).expect("Should child must exist"); - if diff.parents.is_some() { - for parent in diff.parents.as_ref().unwrap() { - if parent != ¤t { - //println!("Found missing parent: {:?}", hash_to_node_id(parent.clone())); - self.unexplored_side_branches.insert(parent.clone()); - } - } - } - } - let mut unseen_children = children - .to_owned() - .into_iter() - .filter(|child| !next.contains(child)) - .collect::>(); - next.append(&mut unseen_children); - } - None => {} - }; - let current_diff = self.diffs.get(¤t).expect("diffs should be populated"); - sorted.push((current.clone(), current_diff.clone())); - if self.entry_map.get(¤t).is_none() { - self.entry_map.insert(current.clone(), current_diff.clone()); - }; - visited.insert(current); - } - } - //debug!( - // "===Workspace.sort_graph(): Made {:?} total iterations", - // inner_iter - //); - - self.unexplored_side_branches = self - .unexplored_side_branches - .iter() - .filter(|b| !sorted.iter().find(|s| s.0 == **b).is_some()) - .cloned() - .collect(); - - // println!("SortGraph iter: Unexplored side branches: {:?}", self.unexplored_side_branches.clone().into_iter().map(|child| hash_to_node_id(child)).collect::>()); - - //println!("Sorted is: {:?}", sorted.clone().into_iter().map(|val| hash_to_node_id(val.0)).collect::>()); - self.sorted_diffs = Some(sorted.into_iter().unique().collect()); - - //let fn_end = get_now()?.time(); - //debug!( - // "===Workspace.sort_graph() - Profiling: Took: {} to complete sort_graph() function", - // (fn_end - fn_start).num_milliseconds() - //); - - Ok(()) - } - - pub fn build_diffs( - &mut self, - theirs: Hash, - ours: Hash, - ) -> SocialContextResult<()> { - debug!("===Workspace.build_diffs(): Function start"); - let fn_start = get_now()?.time(); - - let common_ancestor = self.collect_until_common_ancestor::(theirs, ours)?; - self.common_ancestors.push(common_ancestor); - - //println!("===PerspectiveDiffSunc.build_diffs(): Got diffs: {:?}", self.diffs.iter().map(|x| hash_to_node_id(x.0.to_owned())).collect::>()); - //println!("===PerspectiveDiffSunc.build_diffs(): Got back_links: {:?}", self.back_links.iter().map(|x| hash_to_node_id(x.0.to_owned())).collect::>()); - - self.sort_graph()?; - //println!("===PerspectiveDiffSunc.build_diffs(): Got unexplored side branches parent: {:#?}", self.unexplored_side_branches.iter().map(|x| hash_to_node_id(x.to_owned())).collect::>()); - - while self.unexplored_side_branches.len() > 0 { - let unexplored_side_branch = self - .unexplored_side_branches - .iter() - .next_back() - .unwrap() - .to_owned(); - let ours = self - .common_ancestors - .last() - .expect("There should have been a common ancestor above") - .to_owned(); - //println!("===Workspace.build_diffs(): making an explored side branch iteration: {:?} and ours: {:?}", hash_to_node_id(unexplored_side_branch.clone()), hash_to_node_id(ours.clone())); - let common_ancestor = - self.collect_until_common_ancestor::(unexplored_side_branch, ours)?; - self.common_ancestors.push(common_ancestor.clone()); - self.sort_graph()?; - //println!("===PerspectiveDiffSync.build_diffs(): Got common ancestor: {:?}", hash_to_node_id(common_ancestor)); - } - - let sorted_diffs = self.sorted_diffs.as_mut().unwrap(); - sorted_diffs.get_mut(0).unwrap().1.parents = None; - self.sorted_diffs = Some(topo_sort_diff_references(sorted_diffs)?); - // println!("===PerspectiveDiffSunc.build_diffs(): Got sorted diffs: {:#?}", self.sorted_diffs); - - self.build_graph()?; - self.print_graph_debug(); - - let fn_end = get_now()?.time(); - debug!( - "===Workspace.build_diffs() - Profiling: Took: {} to complete build_diffs() function", - (fn_end - fn_start).num_milliseconds() - ); - - Ok(()) - } - - fn terminate_with_null_node( - &mut self, - current_hash: Hash, - side: SearchSide, - searches: &mut BTreeMap, - ) -> SocialContextResult<()> { - let search_clone = searches.clone(); - let other = search_clone - .get(&other_side(&side)) - .ok_or(SocialContextError::InternalError("search side not found"))?; - let search = searches - .get_mut(&side) - .ok_or(SocialContextError::InternalError("search side not found"))?; - - if !search.found_ancestors.borrow().contains(&NULL_NODE()) { - search.found_ancestors.get_mut().push(NULL_NODE()); - }; - if !other.found_ancestors.borrow().contains(&NULL_NODE()) { - let other_mut = searches - .get_mut(&other_side(&side)) - .ok_or(SocialContextError::InternalError("search side not found"))?; - other_mut.found_ancestors.get_mut().push(NULL_NODE()); - }; - if self.diffs.get(&NULL_NODE()).is_none() { - let current_diff = PerspectiveDiffEntryReference::new(NULL_NODE(), None); - self.diffs.insert(NULL_NODE(), current_diff.clone()); - }; - - let mut set = if let Some(nodes_back_links) = self.back_links.get(&NULL_NODE()) { - let mut nodes_back_links = nodes_back_links.clone(); - if let Some(other_last) = other.found_ancestors.borrow().last().clone() { - if other_last != &NULL_NODE() { - nodes_back_links.insert(other_last.clone()); - } - } - nodes_back_links.clone() - } else { - let mut set = BTreeSet::new(); - if let Some(other_last) = other.found_ancestors.borrow().last().clone() { - if other_last != &NULL_NODE() { - set.insert(other_last.clone()); - } - } - set - }; - if current_hash != NULL_NODE() { - set.insert(current_hash); - }; - self.back_links.insert(NULL_NODE(), set); - Ok(()) - } - - pub fn collect_until_common_ancestor( - &mut self, - theirs: Hash, - ours: Hash, - ) -> SocialContextResult { - //debug!("===Workspace.collect_until_common_ancestor(): Function start"); - let fn_start = get_now()?.time(); - - let mut common_ancestor: Option = None; - - let mut searches = btreemap! { - SearchSide::Theirs => BfsSearch::new(theirs), - SearchSide::Ours => BfsSearch::new(ours), - }; - - while common_ancestor.is_none() { - // println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2: {:#?}", searches.get(&SearchSide::Theirs).unwrap().bfs_branches.borrow()); - // println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2: {:#?}", searches.get(&SearchSide::Ours).unwrap().bfs_branches.borrow()); - // do the same BFS for theirs_branches and ours_branches.. - for side in vec![SearchSide::Theirs, SearchSide::Ours] { - println!("Checking side: {:#?}", side); - let search_clone = searches.clone(); - let other = search_clone.get(&other_side(&side)).ok_or( - SocialContextError::InternalError("other search side not found"), - )?; - let search = searches - .get_mut(&side) - .ok_or(SocialContextError::InternalError("search side not found"))?; - let branches = search.bfs_branches.get_mut(); - branches.dedup(); - - for branch_index in 0..branches.len() { - println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.1"); - let current_hash = branches[branch_index].clone(); - println!( - "Checking current hash: {:#?}", - hash_to_node_id(current_hash.clone()) - ); - - let already_visited = search.found_ancestors.borrow().contains(¤t_hash); - let seen_on_other_side = other.found_ancestors.borrow().contains(¤t_hash) - || other.bfs_branches.borrow().contains(¤t_hash); - - if already_visited { - println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.2 ALREADY VISITED"); - // We've seen this diff on this side, so we are at the end of a branch. - // Just ignore this hash and close the branch. - branches.remove(branch_index); - break; - } - - if seen_on_other_side { - println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.2 SEEN ON OTHER SIDE"); - - //Add the diff to both searches if it is not there - if !search.found_ancestors.borrow().contains(¤t_hash) { - search.found_ancestors.get_mut().push(current_hash.clone()); - }; - if !other.found_ancestors.borrow().contains(¤t_hash) { - searches - .get_mut(&other_side(&side)) - .ok_or(SocialContextError::InternalError( - "other search side not found", - ))? - .found_ancestors - .get_mut() - .push(current_hash.clone()); - }; - if self.diffs.get(¤t_hash).is_none() && current_hash != NULL_NODE() { - let current_diff = - Self::get_p_diff_reference::(current_hash.clone())?; - self.diffs - .insert(current_hash.clone(), current_diff.clone()); - }; - // current hash is already in, so it must be our common ancestor! - common_ancestor = Some(current_hash); - break; - } - - //println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.3"); - search.found_ancestors.get_mut().push(current_hash.clone()); - - if current_hash == NULL_NODE() { - branches.remove(branch_index); - search.reached_end = true; - if common_ancestor.is_none() && other.reached_end == true { - common_ancestor = Some(NULL_NODE()); - self.terminate_with_null_node(current_hash, side, &mut searches)?; - }; - - break; - } - - //TODO; this should have caching builtin, since on some iterations we will get the same P reference multiple times - let current_diff = - Self::get_p_diff_reference::(current_hash.clone())?; - self.diffs - .insert(current_hash.clone(), current_diff.clone()); - - match ¤t_diff.parents { - None => { - // We arrived at a leaf/orphan (no parents). - // So we can close this branch and potentially continue - // with other unprocessed branches, if they exist. - println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.4, no more parents"); - branches.remove(branch_index); - //If there are no more branches and we have truly reached the end - search.reached_end = true; - //NOTE: this if block is the code that breaks the test_latest_join tests, with it removed the tests pass, but test three null parents fails - if common_ancestor.is_none() && other.reached_end == true { - common_ancestor = Some(NULL_NODE()); - self.terminate_with_null_node(current_hash, side, &mut searches)?; - }; - // We have to break out of loop to avoid having branch_index run out of bounds - break; - } - Some(parents) => { - // println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.4, more parents: {:#?}", parents); - for parent_index in 0..parents.len() { - println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.5, more parents after filter"); - let parent = parents[parent_index].clone(); - if let Some(links) = self.back_links.get_mut(&parent) { - links.insert(current_hash.clone()); - } else { - let mut set = BTreeSet::new(); - set.insert(current_hash.clone()); - self.back_links.insert(parent.clone(), set); - } - // The first parent is taken as the successor for the current branch. - // If there are multiple parents (i.e. merge commit), we create a new branch.. - if parent_index == 0 { - println!("Adding new parent to existing branch index"); - let _ = std::mem::replace( - &mut branches[branch_index], - parent.clone(), - ); - } else { - let already_visited = - search.found_ancestors.borrow().contains(&parent) - || other.bfs_branches.borrow().contains(&parent); - let seen_on_other_side = - other.found_ancestors.borrow().contains(&parent); - if !already_visited && !seen_on_other_side { - println!("===Workspace.collect_until_common_ancestor(): Adding a new branch"); - branches.push(parent.clone()) - } - } - } - } - }; - - //println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 2.7"); - } - } - } - - let fn_end = get_now()?.time(); - let ms_spent = (fn_end - fn_start).num_milliseconds(); - if ms_spent > 1000 { - debug!("===Workspace.collect_until_common_ancestor() - Profiling: Took: {} to complete collect_until_common_ancestor() function", ms_spent); - } - - if common_ancestor.is_none() { - return Err(SocialContextError::NoCommonAncestorFound); - }; - - // println!("===Workspace.collect_until_common_ancestor(): collect_until_common_ancestor 3: {:#?} and common ancestor is: {:#?}", searches, hash_to_node_id(common_ancestor.clone().unwrap())); - - Ok(common_ancestor.unwrap()) - } - - // pub fn topo_sort_graph(&mut self) -> SocialContextResult<()> { - // debug!("===Workspace.topo_sort_graph(): Function start"); - // let fn_start = get_now()?.time(); - - // let entry_vec = self.entry_map - // .clone() - // .into_iter() - // .collect::>(); - - // let mut dot = Vec::::new(); - - // dot.push("digraph {".to_string()); - // for entry in entry_vec.iter() { - // dot.push(format!("{}", entry.0.clone())); - // if let Some(parents) = &entry.1.parents { - // for p in parents.iter() { - // dot.push(format!("{} -> {}", entry.0, p)); - // } - // } - // } - // dot.push("}".to_string()); - - // println!("{}", dot.join("\n")); - - // self.sorted_diffs = Some(topo_sort_diff_references(&entry_vec)?); - - // let fn_end = get_now()?.time(); - // debug!("===Workspace.topo_sort_graph() - Profiling: Took: {} to complete topo_sort_graph() function", (fn_end - fn_start).num_milliseconds()); - // Ok(()) - // } - - pub fn build_graph(&mut self) -> SocialContextResult<()> { - debug!("===Workspace.build_graph(): Function start"); - let fn_start = get_now()?.time(); - - match self.sorted_diffs.clone() { - None => Err(SocialContextError::InternalError( - "Need to 1. collect diffs and then 2. sort them before building the graph", - )), - Some(sorted_diffs) => { - //Add root node - if self.get_node_index(&NULL_NODE()).is_none() { - self.add_node(None, NULL_NODE()); - }; - - for diff in sorted_diffs { - if diff.0 != NULL_NODE() { - if diff.1.parents.is_some() { - let mut parents = vec![]; - for parent in diff.1.parents.as_ref().unwrap() { - let parent = self.get_node_index(&parent).ok_or( - SocialContextError::InternalError("Did not find parent"), - )?; - parents.push(parent.clone()); - } - self.add_node(Some(parents), diff.0.clone()); - } else { - self.add_node(Some(vec![NodeIndex::from(0)]), diff.0.clone()); - } - } - } - - let fn_end = get_now()?.time(); - debug!("===Workspace.build_graph() - Profiling: Took: {} to complete build_graph() function", (fn_end - fn_start).num_milliseconds()); - - Ok(()) - } - } - } - - pub fn get_p_diff_reference( - address: Hash, - ) -> SocialContextResult { - Retriever::get(address) - } - - fn get_snapshot( - address: PerspectiveDiffEntryReference, - ) -> SocialContextResult> { - debug!("===Workspace.get_snapshot(): Function start"); - let fn_start = get_now()?.time(); - - let input = GetLinksInputBuilder::try_new( - hash_entry(address)?, - LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .get_options(GetStrategy::Network) - .build(); - let mut snapshot_links = get_links(input)?; - - if snapshot_links.len() > 0 { - let snapshot = get( - snapshot_links - .remove(0) - .target - .into_entry_hash() - .expect("Could not get entry hash"), - GetOptions::network(), - )? - .ok_or(SocialContextError::InternalError( - "Workspace::get_snapshot: Could not find entry while populating search", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - - let fn_end = get_now()?.time(); - debug!("===Workspace.get_snapshot() - Profiling: Took: {} to complete get_snapshot() function", (fn_end - fn_start).num_milliseconds()); - - Ok(Some(snapshot)) - } else { - let fn_end = get_now()?.time(); - debug!("===Workspace.get_snapshot() - Profiling: Took: {} to complete get_snapshot() function", (fn_end - fn_start).num_milliseconds()); - - Ok(None) - } - } - - fn add_node(&mut self, parents: Option>>, diff: Hash) -> NodeIndex { - let index = self.graph.add_node(diff.clone()); - self.undirected_graph.add_node(diff.clone()); - self.node_index_map.insert(diff, index); - if parents.is_some() { - for parent in parents.unwrap() { - self.graph.add_edge(index, parent, ()); - self.undirected_graph.add_edge(index, parent, ()); - } - } - index - } - - pub fn get_node_index(&self, node: &Hash) -> Option<&NodeIndex> { - self.node_index_map.get(node) - } - - // pub fn get_paths( - // &self, - // child: &Hash, - // ancestor: &Hash, - // ) -> SocialContextResult>> { - // debug!("===Workspace.get_paths(): Function start"); - // let fn_start = get_now()?.time(); - - // let child_node = self.get_node_index(child).expect("Could not get child node index"); - // let ancestor_node = self.get_node_index(ancestor).expect("Could not get ancestor node index"); - // let paths = all_simple_paths::, _>(&self.graph, *child_node, *ancestor_node, 0, None) - // .collect::>(); - - // let fn_end = get_now()?.time(); - // debug!("===Workspace.get_paths() - Profiling: Took: {} to complete get_paths() function", (fn_end - fn_start).num_milliseconds()); - - // Ok(paths) - // } - - pub fn _find_common_ancestor( - &self, - root: NodeIndex, - second: NodeIndex, - ) -> Option { - let imm = simple_fast(&self.undirected_graph, root); - let imm = imm.dominators(second); - let mut index: Option = None; - match imm { - Some(imm_iter) => { - for dom in imm_iter { - match index { - Some(current_index) => { - if current_index.index() > dom.index() { - index = Some(dom) - } - } - None => index = Some(dom), - }; - } - } - None => {} - }; - index - } - - pub fn squashed_diff( - &self, - ) -> SocialContextResult { - debug!("===Workspace.squashed_diff(): Function start"); - let fn_start = get_now()?.time(); - - let mut out = PerspectiveDiff { - additions: vec![], - removals: vec![], - }; - for (_key, value) in self.entry_map.iter() { - if value.diff == NULL_NODE() { - continue; - } - let diff_entry = Retriever::get::(value.diff.clone())?; - out.additions.append(&mut diff_entry.additions.clone()); - out.removals.append(&mut diff_entry.removals.clone()); - } - - let fn_end = get_now()?.time(); - debug!("===Workspace.squashed_diff() - Profiling: Took: {} to complete squashed_diff() function", (fn_end - fn_start).num_milliseconds()); - - Ok(out) - } - - // pub fn squashed_fast_forward_from(&self, base: Hash) -> SocialContextResult { - // match &self.sorted_diffs { - // None => Err(SocialContextError::InternalError("Need to sort first for this fast-forward optimzed squash")), - // Some(sorted_diffs) => { - // let mut base_found = false; - // let mut out = PerspectiveDiff { - // additions: vec![], - // removals: vec![], - // }; - // for i in 0..sorted_diffs.len() { - // let current = &sorted_diffs[i]; - // if !base_found { - // if current.0 == base { - // base_found = true; - // } - // } else { - // let diff_entry = get(current.1.diff.clone(), GetOptions::network())? - // .ok_or(SocialContextError::InternalError( - // "Could not find diff entry for given diff entry reference", - // ))? - // .entry() - // .to_app_option::()? - // .ok_or(SocialContextError::InternalError( - // "Expected element to contain app entry data", - // ))?; - // out.additions.append(&mut diff_entry.additions.clone()); - // out.removals.append(&mut diff_entry.removals.clone()); - // } - // } - // Ok(out) - // } - // } - // } - - pub fn print_graph_debug(&self) { - if cfg!(test) { - println!( - "Directed: {:?}\n", - Dot::with_config( - &self.graph.map( - |_node_index, node| { crate::retriever::hash_to_node_id(node.to_owned()) }, - |_edge_index, _edge| {} - ), - &[] - ) - ); - println!( - "Undirected: {:?}\n", - Dot::with_config( - &self.undirected_graph.map( - |_node_index, node| { crate::retriever::hash_to_node_id(node.to_owned()) }, - |_edge_index, _edge| {} - ), - &[] - ) - ); - } else { - debug!( - "Directed: {:?}\n", - Dot::with_config(&self.graph, &[Config::NodeIndexLabel]) - ); - debug!( - "Undirected: {:?}\n", - Dot::with_config(&self.undirected_graph, &[]) - ); - } - } - - pub fn all_ancestors(&self, child: &Hash) -> SocialContextResult> { - debug!("===Workspace.all_ancestors(): Function start"); - let fn_start = get_now()?.time(); - - let child_node = self - .get_node_index(child) - .expect("Could not get child node index"); - let mut ancestors = vec![]; - let mut visited = HashSet::new(); - let mut stack = vec![*child_node]; - while !stack.is_empty() { - let current = stack.pop().unwrap(); - if visited.contains(¤t) { - continue; - } - visited.insert(current); - let mut parents = self - .graph - .neighbors_directed(current, petgraph::Direction::Outgoing); - while let Some(parent) = parents.next() { - stack.push(parent); - } - ancestors.push(self.graph.node_weight(current).unwrap().to_owned()); - } - - let fn_end = get_now()?.time(); - debug!("===Workspace.all_ancestors() - Profiling: Took: {} to complete all_ancestors() function", (fn_end - fn_start).num_milliseconds()); - - Ok(ancestors) - } -} - -#[cfg(test)] -mod tests { - use super::NULL_NODE; - use crate::link_adapter::workspace::Workspace; - use crate::retriever::{node_id_hash, MockPerspectiveGraph, GLOBAL_MOCKED_GRAPH}; - use dot_structures; - - #[test] - fn test_collect_until_common_ancestor_forked() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - "digraph { - 0 [ label = \"0\" ] - 1 [ label = \"1\" ] - 2 [ label = \"2\" ] - 3 [ label = \"3\" ] - 4 [ label = \"4\" ] - 5 [ label = \"5\" ] - 6 [ label = \"6\" ] - 7 [ label = \"7\" ] - 8 [ label = \"8\" ] - 9 [ label = \"9\" ] - 10 [ label = \"10\" ] - 11 [ label = \"11\" ] - 12 [ label = \"12\" ] - 1 -> 0 [ label = \"()\" ] - 2 -> 1 [ label = \"()\" ] - 3 -> 2 [ label = \"()\" ] - 4 -> 3 [ label = \"()\" ] - 5 -> 4 [ label = \"()\" ] - 6 -> 5 [ label = \"()\" ] - 7 -> 1 [ label = \"()\" ] - 8 -> 7 [ label = \"()\" ] - 9 -> 8 [ label = \"()\" ] - 10 -> 9 [ label = \"()\" ] - 11 -> 10 [ label = \"()\" ] - 12 -> 11 [ label = \"()\" ] - }", - ) - .unwrap(); - } - update(); - - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - let node_12 = node_id_hash(&dot_structures::Id::Plain(String::from("12"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_12.clone(), node_6.clone()); - assert!(res.is_ok()); - - assert!(workspace.common_ancestors.len() == 1); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_1); - - assert_eq!(workspace.entry_map.len(), 12); - - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - let node_7 = node_id_hash(&dot_structures::Id::Plain(String::from("7"))); - let node_8 = node_id_hash(&dot_structures::Id::Plain(String::from("8"))); - let node_9 = node_id_hash(&dot_structures::Id::Plain(String::from("9"))); - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - let node_11 = node_id_hash(&dot_structures::Id::Plain(String::from("11"))); - - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - assert!(workspace.entry_map.get(&node_4).is_some()); - assert!(workspace.entry_map.get(&node_5).is_some()); - assert!(workspace.entry_map.get(&node_6).is_some()); - assert!(workspace.entry_map.get(&node_7).is_some()); - assert!(workspace.entry_map.get(&node_8).is_some()); - assert!(workspace.entry_map.get(&node_9).is_some()); - assert!(workspace.entry_map.get(&node_10).is_some()); - assert!(workspace.entry_map.get(&node_11).is_some()); - assert!(workspace.entry_map.get(&node_12).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_forward_to_merge_commit() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - "digraph { - 0 [ label = \"0\" ] - 1 [ label = \"1\" ] - 2 [ label = \"2\" ] - 3 [ label = \"3\" ] - 4 [ label = \"4\" ] - 5 [ label = \"5\" ] - 6 [ label = \"6\" ] - 7 [ label = \"7\" ] - 8 [ label = \"8\" ] - 9 [ label = \"9\" ] - 10 [ label = \"10\" ] - 11 [ label = \"11\" ] - 12 [ label = \"12\" ] - 13 [ label = \"12\" ] - - 1 -> 0 [ label = \"()\" ] - 2 -> 1 [ label = \"()\" ] - 3 -> 2 [ label = \"()\" ] - 4 -> 3 [ label = \"()\" ] - 5 -> 4 [ label = \"()\" ] - 6 -> 5 [ label = \"()\" ] - - 7 -> 1 [ label = \"()\" ] - 8 -> 7 [ label = \"()\" ] - 9 -> 8 [ label = \"()\" ] - 10 -> 9 [ label = \"()\" ] - 11 -> 10 [ label = \"()\" ] - - 12 -> 11 [ label = \"()\" ] - 12 -> 6 [ label = \"()\" ] - - 13 -> 12 [ label = \"()\" ] - - }", - ) - .unwrap(); - } - update(); - - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - let node_12 = node_id_hash(&dot_structures::Id::Plain(String::from("12"))); - let node_13 = node_id_hash(&dot_structures::Id::Plain(String::from("13"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_13.clone(), node_6.clone()); - assert!(res.is_ok()); - - assert!(workspace.common_ancestors.len() == 1); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_1); - assert_eq!(workspace.entry_map.len(), 13); - - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - let node_7 = node_id_hash(&dot_structures::Id::Plain(String::from("7"))); - let node_8 = node_id_hash(&dot_structures::Id::Plain(String::from("8"))); - let node_9 = node_id_hash(&dot_structures::Id::Plain(String::from("9"))); - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - let node_11 = node_id_hash(&dot_structures::Id::Plain(String::from("11"))); - - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - assert!(workspace.entry_map.get(&node_4).is_some()); - assert!(workspace.entry_map.get(&node_5).is_some()); - assert!(workspace.entry_map.get(&node_6).is_some()); - assert!(workspace.entry_map.get(&node_7).is_some()); - assert!(workspace.entry_map.get(&node_8).is_some()); - assert!(workspace.entry_map.get(&node_9).is_some()); - assert!(workspace.entry_map.get(&node_10).is_some()); - assert!(workspace.entry_map.get(&node_11).is_some()); - assert!(workspace.entry_map.get(&node_12).is_some()); - assert!(workspace.entry_map.get(&node_13).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_multi_fork() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - - 1 -> 0 [ label = "()" ] - 2 -> 1 [ label = "()" ] - - 3 -> 0 [ label = "()" ] - - 4 -> 0 [ label = "()" ] - 5 -> 4 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_0 = node_id_hash(&dot_structures::Id::Plain(String::from("0"))); - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - //let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - //let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_3.clone(), node_2.clone()); - assert!(res.is_ok()); - - assert!(workspace.common_ancestors.len() == 1); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_0); - assert_eq!(workspace.entry_map.len(), 4); - - assert!(workspace.entry_map.get(&node_0).is_some()); - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_fork_on_top_of_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - - 1 -> 0 - 2 -> 1 - 3 -> 2 - 4 -> 3 - 5 -> 4 - - 6 - 7 - 8 - 9 - 10 - - 7 -> 6 - 8 -> 7 - 9 -> 8 - 10 -> 9 - - 8 -> 0 - - }"#, - ) - .unwrap(); - } - update(); - - let node_0 = node_id_hash(&dot_structures::Id::Plain(String::from("0"))); - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - //let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - //let node_7 = node_id_hash(&dot_structures::Id::Plain(String::from("7"))); - let node_8 = node_id_hash(&dot_structures::Id::Plain(String::from("8"))); - let node_9 = node_id_hash(&dot_structures::Id::Plain(String::from("9"))); - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_5.clone(), node_10.clone()); - println!("Got result: {:#?}", res); - assert!(res.is_ok()); - - assert!(workspace.common_ancestors.len() == 2); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_0); - assert_eq!(workspace.common_ancestors.last().unwrap(), &NULL_NODE()); - assert_eq!(workspace.entry_map.len(), 12); - - assert!(workspace.entry_map.get(&node_0).is_some()); - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - assert!(workspace.entry_map.get(&node_4).is_some()); - assert!(workspace.entry_map.get(&node_5).is_some()); - //assert!(workspace.entry_map.get(&node_7).is_some()); - assert!(workspace.entry_map.get(&node_8).is_some()); - assert!(workspace.entry_map.get(&node_9).is_some()); - assert!(workspace.entry_map.get(&node_10).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_unconnected_fork() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - - 1 -> 0 - 2 -> 1 - 3 -> 2 - 4 -> 3 - 5 -> 4 - - 6 - 7 - 8 - 9 - 10 - - 7 -> 6 - 8 -> 7 - 9 -> 8 - 10 -> 9 - }"#, - ) - .unwrap(); - } - update(); - - let node_0 = node_id_hash(&dot_structures::Id::Plain(String::from("0"))); - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - let node_7 = node_id_hash(&dot_structures::Id::Plain(String::from("7"))); - let node_8 = node_id_hash(&dot_structures::Id::Plain(String::from("8"))); - let node_9 = node_id_hash(&dot_structures::Id::Plain(String::from("9"))); - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_5.clone(), node_10.clone()); - println!("Got result: {:#?}", res); - assert!(res.is_ok()); - - assert!(workspace.common_ancestors.len() == 1); - assert_eq!(workspace.common_ancestors.first().unwrap(), &NULL_NODE()); - assert_eq!(workspace.entry_map.len(), 12); - - assert!(workspace.entry_map.get(&NULL_NODE()).is_some()); - assert!(workspace.entry_map.get(&node_0).is_some()); - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - assert!(workspace.entry_map.get(&node_4).is_some()); - assert!(workspace.entry_map.get(&node_5).is_some()); - assert!(workspace.entry_map.get(&node_6).is_some()); - assert!(workspace.entry_map.get(&node_7).is_some()); - assert!(workspace.entry_map.get(&node_8).is_some()); - assert!(workspace.entry_map.get(&node_9).is_some()); - assert!(workspace.entry_map.get(&node_10).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_ff_to_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - - 1 -> 0 - 2 -> 0 - 3 -> 1 - 3 -> 2 - - }"#, - ) - .unwrap(); - } - update(); - - let node_0 = node_id_hash(&dot_structures::Id::Plain(String::from("0"))); - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_1.clone(), node_3.clone()); - println!("Got result: {:#?}", res); - assert!(res.is_ok()); - - println!("common ancestors: {:?}", workspace.common_ancestors); - assert_eq!(workspace.common_ancestors.len(), 2); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_1); - assert_eq!(workspace.common_ancestors.last().unwrap(), &node_0); - assert_eq!(workspace.entry_map.len(), 4); - - assert!(workspace.entry_map.get(&node_0).is_some()); - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_complex_merge() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 1 -> 0 [ label = "()" ] - 2 -> 0 [ label = "()" ] - 3 -> 0 [ label = "()" ] - 4 -> 2 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 5 -> 3 [ label = "()" ] - 6 -> 5 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_0 = node_id_hash(&dot_structures::Id::Plain(String::from("0"))); - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_2 = node_id_hash(&dot_structures::Id::Plain(String::from("2"))); - let node_3 = node_id_hash(&dot_structures::Id::Plain(String::from("3"))); - let node_4 = node_id_hash(&dot_structures::Id::Plain(String::from("4"))); - let node_5 = node_id_hash(&dot_structures::Id::Plain(String::from("5"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_1.clone(), node_6.clone()); - println!("Got result: {:#?}", res); - assert!(res.is_ok()); - - println!("common ancestors: {:?}", workspace.common_ancestors); - assert_eq!(workspace.common_ancestors.len(), 1); - assert_eq!(workspace.common_ancestors.last().unwrap(), &node_0); - assert_eq!(workspace.entry_map.len(), 7); - - assert!(workspace.entry_map.get(&node_0).is_some()); - assert!(workspace.entry_map.get(&node_1).is_some()); - assert!(workspace.entry_map.get(&node_2).is_some()); - assert!(workspace.entry_map.get(&node_3).is_some()); - assert!(workspace.entry_map.get(&node_4).is_some()); - assert!(workspace.entry_map.get(&node_5).is_some()); - assert!(workspace.entry_map.get(&node_6).is_some()); - } - - #[test] - fn test_collect_until_common_ancestor_complex_merge_implicit_zero() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 4 -> 2 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 5 -> 3 [ label = "()" ] - 6 -> 5 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_1 = node_id_hash(&dot_structures::Id::Plain(String::from("1"))); - let node_6 = node_id_hash(&dot_structures::Id::Plain(String::from("6"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_1.clone(), node_6.clone()); - println!("Got result: {:#?}", res); - assert!(res.is_ok()); - assert_eq!(workspace.common_ancestors.len(), 2); - assert_eq!(workspace.common_ancestors.last().unwrap(), &NULL_NODE()); - } - - #[test] - fn real_world_graph() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::from_dot( - r#"digraph { - 0 [ label = "0" ] - 1 [ label = "1" ] - 2 [ label = "2" ] - 3 [ label = "3" ] - 4 [ label = "4" ] - 5 [ label = "5" ] - 6 [ label = "6" ] - 7 [ label = "7" ] - 8 [ label = "8" ] - 9 [ label = "9" ] - 10 [ label = "10" ] - 11 [ label = "11" ] - 12 [ label = "12" ] - 13 [ label = "13" ] - 14 [ label = "14" ] - 15 [ label = "15" ] - 16 [ label = "16" ] - 1 -> 0 [ label = "()" ] - 2 -> 1 [ label = "()" ] - 3 -> 2 [ label = "()" ] - 4 -> 3 [ label = "()" ] - 5 -> 4 [ label = "()" ] - 6 -> 5 [ label = "()" ] - 7 -> 6 [ label = "()" ] - 8 -> 7 [ label = "()" ] - 9 -> 8 [ label = "()" ] - 10 -> 9 [ label = "()" ] - 11 -> 1 [ label = "()" ] - 12 -> 2 [ label = "()" ] - 12 -> 11 [ label = "()" ] - 13 -> 3 [ label = "()" ] - 13 -> 12 [ label = "()" ] - 14 -> 6 [ label = "()" ] - 14 -> 13 [ label = "()" ] - 15 -> 7 [ label = "()" ] - 15 -> 14 [ label = "()" ] - 16 -> 8 [ label = "()" ] - 16 -> 15 [ label = "()" ] - }"#, - ) - .unwrap(); - } - update(); - - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - let node_16 = node_id_hash(&dot_structures::Id::Plain(String::from("16"))); - let node_8 = node_id_hash(&dot_structures::Id::Plain(String::from("8"))); - - let mut workspace = Workspace::new(); - let res = workspace.build_diffs::(node_16.clone(), node_10.clone()); - assert!(res.is_ok()); - assert_eq!(workspace.common_ancestors.len(), 6); - assert_eq!(workspace.common_ancestors.first().unwrap(), &node_8); - println!("Got result: {:#?}", res); - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever.rs deleted file mode 100644 index e1b404571..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever.rs +++ /dev/null @@ -1,35 +0,0 @@ -use crate::Hash; -use crate::errors::SocialContextResult; -use hdk::prelude::*; -use chrono::{DateTime, Utc}; - -pub mod holochain; -pub mod mock; - -pub use holochain::HolochainRetreiver; -pub use mock::*; -use perspective_diff_sync_integrity::{LocalHashReference, HashReference}; - -pub trait PerspectiveDiffRetreiver { - fn get(hash: Hash) -> SocialContextResult - where - T: TryFrom; - - fn get_with_timestamp(hash: Hash) -> SocialContextResult<(T, DateTime)> - where - T: TryFrom; - - fn create_entry(entry: I) -> SocialContextResult - where - ScopedEntryDefIndex: for<'a> TryFrom<&'a I, Error = E2>, - EntryVisibility: for<'a> From<&'a I>, - Entry: TryFrom, - WasmError: From, - WasmError: From; - fn current_revision() -> SocialContextResult>; - fn latest_revision() -> SocialContextResult>; - fn update_current_revision(hash: Hash, timestamp: DateTime) -> SocialContextResult<()>; - fn update_latest_revision(hash: Hash, timestamp: DateTime) -> SocialContextResult<()>; -} - - diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs deleted file mode 100644 index f9185b7ee..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs +++ /dev/null @@ -1,201 +0,0 @@ -use std::str::FromStr; - -use chrono::{DateTime, NaiveDateTime, Utc}; -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - Anchor, EntryTypes, HashReference, LinkTypes, LocalHashReference, -}; - -use super::PerspectiveDiffRetreiver; -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::utils::dedup; -use crate::Hash; - -pub struct HolochainRetreiver; - -impl PerspectiveDiffRetreiver for HolochainRetreiver { - fn get(hash: Hash) -> SocialContextResult - where - T: TryFrom, - { - get(hash, GetOptions::network())? - .ok_or(SocialContextError::InternalError( - "HolochainRetreiver: Could not find entry", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - )) - } - - fn get_with_timestamp(hash: Hash) -> SocialContextResult<(T, DateTime)> - where - T: TryFrom, - { - let element = get(hash, GetOptions::network())?; - let element = element.ok_or(SocialContextError::InternalError( - "HolochainRetreiver: Could not find entry", - ))?; - let entry = element.entry(); - let timestamp = element.action().timestamp().0 as u64; - let duration = std::time::Duration::from_micros(timestamp); - let timestamp = DateTime::::from_utc( - NaiveDateTime::from_timestamp(duration.as_secs() as i64, duration.subsec_nanos()), - Utc, - ); - let entry = entry - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - Ok((entry, timestamp)) - } - - fn create_entry(entry: I) -> SocialContextResult - where - ScopedEntryDefIndex: for<'a> TryFrom<&'a I, Error = E2>, - EntryVisibility: for<'a> From<&'a I>, - Entry: TryFrom, - WasmError: From, - WasmError: From, - { - create_entry::(entry).map_err(|e| SocialContextError::Wasm(e)) - } - - fn current_revision() -> SocialContextResult> { - let query = query( - QueryFilter::new() - .entry_type(EntryType::App(AppEntryDef { - entry_index: 4.into(), - zome_index: 0.into(), - visibility: EntryVisibility::Private, - })) - .include_entries(true) - .descending(), - ); - - let revision = match query { - Ok(records) => { - if records.len() == 0 { - None - } else { - let record = records[0].clone(); - let entry = record - .entry - .to_app_option::() - .unwrap() - .unwrap(); - Some(entry) - } - } - Err(e) => { - debug!("PerspectiveDiffSync.current_revision(): Error when getting current revision: {:?}", e); - None - } - }; - Ok(revision) - } - - fn latest_revision() -> SocialContextResult> { - let latest_root_entry = get_latest_revision_anchor(); - let latest_root_entry_hash = hash_entry(latest_root_entry.clone())?; - let input = GetLinksInputBuilder::try_new( - latest_root_entry_hash, - LinkTypes::Index - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut latest_revision_links = get_links(input)?; - - latest_revision_links.sort_by(|link_a, link_b| { - let link_a_str = std::str::from_utf8(&link_a.tag.0).unwrap(); - let link_b_str = std::str::from_utf8(&link_b.tag.0).unwrap(); - let link_a = DateTime::::from_str(link_a_str).unwrap(); - let link_b = DateTime::::from_str(link_b_str).unwrap(); - link_a.cmp(&link_b) - }); - - let mut latest_hash_revisions = latest_revision_links - .into_iter() - .map(|link| { - let hash = - link.target - .into_action_hash() - .ok_or(SocialContextError::InternalError( - "Could not convert link target to hash", - ))?; - let timestamp = std::str::from_utf8(&link.tag.0) - .map_err(|_| SocialContextError::InternalError("Could not tag to string"))?; - - let timestamp = DateTime::::from_str(timestamp).map_err(|_| { - SocialContextError::InternalError("Could not convert string to timestamp") - })?; - Ok(HashReference { hash, timestamp }) - }) - .collect::>>()?; - - Ok(latest_hash_revisions.pop()) - } - - fn update_current_revision(hash: Hash, timestamp: DateTime) -> SocialContextResult<()> { - let hash_ref = LocalHashReference { hash, timestamp }; - create_entry(EntryTypes::LocalHashReference(hash_ref.clone()))?; - Ok(()) - } - - fn update_latest_revision(hash: Hash, timestamp: DateTime) -> SocialContextResult<()> { - let latest_root_entry = get_latest_revision_anchor(); - let _latest_root_entry_action = - self::create_entry(EntryTypes::Anchor(latest_root_entry.clone()))?; - - create_link( - hash_entry(latest_root_entry)?, - hash, - LinkTypes::Index, - LinkTag::new(timestamp.to_string()), - )?; - - Ok(()) - } -} - -fn get_latest_revision_anchor() -> Anchor { - Anchor("latest_revision".to_string()) -} - -pub fn get_active_agent_anchor() -> Anchor { - Anchor("active_agent".to_string()) -} - -pub fn get_active_agents() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - hash_entry(get_active_agent_anchor())?, - LinkTypes::Index - ) - .unwrap() - .tag_prefix(LinkTag::new("active_agent")) - .get_options(GetStrategy::Network) - .build(); - let recent_agents = get_links(input)?; - - let recent_agents = recent_agents - .into_iter() - .map(|val| { - let entry: EntryHash = val.target.try_into().unwrap(); - AgentPubKey::from(entry) - }) - .collect(); - - //Dedup the agents - let mut recent_agents = dedup(&recent_agents); - //Remove ourself from the agents - let me = agent_info()?.agent_latest_pubkey; - let index = recent_agents.iter().position(|x| *x == me); - if let Some(index) = index { - recent_agents.remove(index); - }; - - Ok(recent_agents) -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/mock.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/mock.rs deleted file mode 100644 index ca83bcc29..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/retriever/mock.rs +++ /dev/null @@ -1,530 +0,0 @@ -use chrono::{DateTime, Utc}; -use dot_structures; -use graphviz_rust; -use hdk::prelude::*; -use perspective_diff_sync_integrity::{ - HashReference, LinkExpression, LocalHashReference, PerspectiveDiff, - PerspectiveDiffEntryReference, -}; -use sha2::{Digest, Sha256}; -use std::collections::BTreeMap; -use std::sync::Mutex; - -use super::PerspectiveDiffRetreiver; -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::link_adapter::workspace::NULL_NODE; -use crate::utils::create_link_expression; -use crate::Hash; - -#[derive(Debug)] -pub struct MockPerspectiveGraph { - pub graph_map: BTreeMap, -} - -impl PerspectiveDiffRetreiver for MockPerspectiveGraph { - fn get(hash: Hash) -> SocialContextResult - where - T: TryFrom, - { - let value = &GLOBAL_MOCKED_GRAPH - .lock() - .expect("Could not get lock on graph map") - .graph_map - .get(&hash) - .expect("Could not find entry in map") - .to_owned(); - Ok(T::try_from(value.to_owned())?) - } - - fn get_with_timestamp(hash: Hash) -> SocialContextResult<(T, DateTime)> - where - T: TryFrom, - { - let value = &GLOBAL_MOCKED_GRAPH - .lock() - .expect("Could not get lock on graph map") - .graph_map - .get(&hash) - .expect("Could not find entry in map") - .to_owned(); - Ok((T::try_from(value.to_owned())?, Utc::now())) - } - - fn create_entry(entry: I) -> SocialContextResult - where - ScopedEntryDefIndex: for<'a> TryFrom<&'a I, Error = E2>, - EntryVisibility: for<'a> From<&'a I>, - Entry: TryFrom, - WasmError: From, - WasmError: From, - { - let mut object_store = GLOBAL_MOCKED_GRAPH - .lock() - .expect("Could not get lock on OBJECT_STORE"); - - let entry: Entry = entry.try_into().expect("Could not get Entry"); - let sb = match entry { - Entry::App(bytes) => bytes, - _ => panic!("Should not get any entry except app"), - }; - let bytes = sb.bytes(); - - let mut hasher = Sha256::new(); - hasher.update(bytes); - let mut result = hasher.finalize().as_slice().to_owned(); - result.append(&mut vec![0xdb, 0xdb, 0xdb, 0xdb]); - - let hash = ActionHash::from_raw_36(result); - object_store.graph_map.insert(hash.clone(), sb.0); - Ok(hash) - } - - fn current_revision() -> SocialContextResult> { - let revision = CURRENT_REVISION - .lock() - .expect("Could not get lock on CURRENT_REVISION"); - Ok(revision.clone().map(|val| LocalHashReference { - hash: val, - timestamp: Utc::now(), - })) - } - - fn latest_revision() -> SocialContextResult> { - let revision = LATEST_REVISION - .lock() - .expect("Could not get lock on LATEST_REVISION"); - Ok(revision.clone().map(|val| HashReference { - hash: val, - timestamp: Utc::now(), - })) - } - - fn update_current_revision(hash: Hash, _timestamp: DateTime) -> SocialContextResult<()> { - let mut revision = CURRENT_REVISION - .lock() - .expect("Could not get lock on CURRENT_REVISION"); - *revision = Some(hash); - Ok(()) - } - - fn update_latest_revision(hash: Hash, _timestamp: DateTime) -> SocialContextResult<()> { - let mut revision = LATEST_REVISION - .lock() - .expect("Could not get lock on LATEST_REVISION"); - *revision = Some(hash); - Ok(()) - } -} - -pub struct GraphInput { - pub nodes: u8, - pub associations: Vec, -} - -pub struct Associations { - pub node_source: u8, - pub node_targets: Vec, -} - -#[allow(dead_code)] -pub fn node_id_hash(id: &dot_structures::Id) -> Hash { - let mut string = match id { - dot_structures::Id::Html(s) => s, - dot_structures::Id::Escaped(s) => s, - dot_structures::Id::Plain(s) => s, - dot_structures::Id::Anonymous(s) => s, - } - .clone(); - if string.len() > 36 { - let _ = string.split_off(36); - } else { - while string.len() < 36 { - string.push_str("x"); - } - } - ActionHash::from_raw_36(string.into_bytes()) -} - -#[allow(dead_code)] -pub fn hash_to_node_id(hash: ActionHash) -> String { - if hash == NULL_NODE() { - return String::from("NULL_NODE"); - }; - let hash_bytes = hash.get_raw_36(); - - match std::str::from_utf8(hash_bytes) { - Ok(node_id_string) => { - let string_split = node_id_string - .split("x") - .collect::>() - .first() - .unwrap() - .to_owned(); - string_split.to_string() - } - Err(_err) => hash.to_string(), - } -} - -// #[allow(dead_code)] -// pub fn string_to_node_id(mut hash: String) -> String { -// if hash == NULL_NODE().to_string() { -// return String::from("NULL_NODE") -// }; -// if hash.len() > 36 { -// let _ = hash.split_off(36); -// }; -// let hash = ActionHash::from_raw_36(hash.into_bytes()); -// let hash = hash.get_raw_36(); -// let node_id_string = std::str::from_utf8(hash).expect("could not get string from hash array"); -// let string_split = node_id_string.split("x").collect::>().first().unwrap().to_owned(); -// string_split.to_string() -// } - -#[allow(dead_code)] -pub fn create_node_id_link_expression(node_id: u32) -> LinkExpression { - let node_id = node_id.to_string(); - let node_id = dot_structures::Id::Plain(node_id); - let node = &node_id_hash(&node_id).to_string(); - create_link_expression(node, node) -} - -#[allow(dead_code)] -pub fn create_node_id_vec(range_start: u32, range_end: u32) -> Vec { - let mut out = vec![]; - for n in range_start..=range_end { - out.push(create_node_id_link_expression(n)); - } - out -} - -// #[allow(dead_code)] -// pub fn link_expression_to_node_id(links: &mut Vec) { -// links.iter_mut().for_each(|link| { -// if link.data.source.is_some() { -// link.data.source = Some(string_to_node_id(link.data.source.clone().unwrap())); -// } -// if link.data.target.is_some() { -// link.data.target = Some(string_to_node_id(link.data.target.clone().unwrap())); -// } -// }) -// } - -#[allow(dead_code)] -fn unwrap_vertex(v: dot_structures::Vertex) -> Option { - match v { - dot_structures::Vertex::N(id) => Some(id), - _ => None, - } -} - -#[allow(dead_code)] -fn unwrap_edge( - edge: dot_structures::Edge, -) -> Option<(dot_structures::NodeId, dot_structures::NodeId)> { - match edge.ty { - dot_structures::EdgeTy::Pair(a, b) => { - let au = unwrap_vertex(a); - let ab = unwrap_vertex(b); - if au.is_some() && ab.is_some() { - Some((au.unwrap(), ab.unwrap())) - } else { - None - } - } - _ => None, - } -} - -impl MockPerspectiveGraph { - pub fn new(graph_input: GraphInput) -> MockPerspectiveGraph { - let mut graph = MockPerspectiveGraph { - graph_map: BTreeMap::new(), - }; - - for n in 0..graph_input.nodes { - let mocked_hash = ActionHash::from_raw_36(vec![n; 36]); - let associations: Vec<&Associations> = graph_input - .associations - .iter() - .filter(|association| association.node_source == n) - .collect(); - let parents = if associations.len() > 0 { - let mut temp = vec![]; - for association in associations.clone() { - for targets in association.node_targets.clone() { - temp.push(ActionHash::from_raw_36(vec![targets; 36])) - } - } - Some(temp) - } else { - None - }; - let mocked_diff = PerspectiveDiffEntryReference::new(mocked_hash.clone(), parents); - let sb = mocked_diff - .try_into() - .expect("Could not create serialized bytes for mocked_diff"); - graph.graph_map.insert(mocked_hash, sb); - } - - graph - } - - #[allow(dead_code)] - pub fn from_dot(source: &str) -> SocialContextResult { - match graphviz_rust::parse(source) - .map_err(|_| SocialContextError::InternalError("Can't parse as DOT string"))? - { - dot_structures::Graph::Graph { .. } => Err(SocialContextError::InternalError( - "Can't work with undirected DOT graphs", - )), - dot_structures::Graph::DiGraph { stmts, .. } => { - let mut graph = MockPerspectiveGraph { - graph_map: BTreeMap::new(), - }; - - let mut hashes = Vec::::new(); - let mut parents: BTreeMap> = BTreeMap::new(); - - for s in stmts.iter() { - match s { - dot_structures::Stmt::Node(node) => hashes.push(node_id_hash(&node.id.0)), - dot_structures::Stmt::Edge(edge) => { - if let Some(e) = unwrap_edge(edge.clone()) { - let id_0 = e.0 .0; - let id_1 = e.1 .0; - let child = node_id_hash(&id_0); - let parent = node_id_hash(&id_1); - //println!("Edge: {} -> {}", id_0, id_1); - //println!("Edge: {} -> {}", child, parent); - match parents.remove(&child) { - None => parents.insert(child, vec![parent]), - Some(mut prev) => { - prev.push(parent); - parents.insert(child, prev) - } - }; - } - } - _ => {} - } - } - - for ref_hash in hashes.iter() { - //Create a mock diff - let diff = PerspectiveDiff { - additions: vec![create_link_expression( - &ref_hash.to_string(), - &ref_hash.to_string(), - )], - removals: vec![], - }; - - //Create a mock hash for the fake diff - let ref_sb = SerializedBytes::try_from(diff.clone())?; - let mut hasher = Sha256::new(); - hasher.update(ref_sb.bytes()); - let mut result = hasher.finalize().as_slice().to_owned(); - result.append(&mut vec![0xdb, 0xdb, 0xdb, 0xdb]); - let diff_hash = ActionHash::from_raw_36(result); - - //Create the diff reference - let diff_ref = PerspectiveDiffEntryReference::new( - diff_hash.clone(), - parents.get(ref_hash).as_ref().cloned().cloned(), - ); - //Insert the diff reference into the map - let diff_ref_sb = diff_ref - .try_into() - .expect("Could not create serialized bytes for mocked_diff"); - graph.graph_map.insert(ref_hash.clone(), diff_ref_sb); - - //Insert the diff into the map - graph.graph_map.insert(diff_hash, ref_sb); - } - - Ok(graph) - } - } - } -} - -lazy_static! { - pub static ref GLOBAL_MOCKED_GRAPH: Mutex = - Mutex::new(MockPerspectiveGraph::new(GraphInput { - nodes: 1, - associations: vec![] - })); - pub static ref CURRENT_REVISION: Mutex> = Mutex::new(None); - pub static ref LATEST_REVISION: Mutex> = Mutex::new(None); -} - -#[test] -fn can_create_graph() { - let test = MockPerspectiveGraph::new(GraphInput { - nodes: 6, - associations: vec![ - Associations { - node_source: 1, - node_targets: vec![0], - }, - Associations { - node_source: 2, - node_targets: vec![0], - }, - Associations { - node_source: 3, - node_targets: vec![1], - }, - Associations { - node_source: 4, - node_targets: vec![2], - }, - Associations { - node_source: 5, - node_targets: vec![3, 4], - }, - ], - }); - assert_eq!(test.graph_map.keys().len(), 6); - println!("Got graph: {:#?}", test.graph_map); -} - -#[test] -fn can_create_graph_from_dot() { - let dot = "digraph { - 0 [ label = \"0\" ] - 1 [ label = \"1\" ] - 2 [ label = \"2\" ] - 3 [ label = \"3\" ] - 4 [ label = \"4\" ] - 5 [ label = \"5\" ] - 6 [ label = \"6\" ] - 7 [ label = \"7\" ] - 8 [ label = \"8\" ] - 9 [ label = \"9\" ] - 10 [ label = \"10\" ] - 11 [ label = \"11\" ] - 12 [ label = \"12\" ] - 1 -> 0 [ label = \"()\" ] - 2 -> 1 [ label = \"()\" ] - 3 -> 2 [ label = \"()\" ] - 4 -> 3 [ label = \"()\" ] - 5 -> 4 [ label = \"()\" ] - 6 -> 5 [ label = \"()\" ] - 7 -> 1 [ label = \"()\" ] - 8 -> 7 [ label = \"()\" ] - 9 -> 8 [ label = \"()\" ] - 10 -> 9 [ label = \"()\" ] - 11 -> 10 [ label = \"()\" ] - 12 -> 11 [ label = \"()\" ] - 12 -> 10 [ label = \"()\" ] - }"; - - let graph = MockPerspectiveGraph::from_dot(dot).expect("from_dot not to return error"); - //26 since there is a diffref & diff for each node - assert_eq!(graph.graph_map.keys().len(), 26); - - let node_12 = node_id_hash(&dot_structures::Id::Plain(String::from("12"))); - let node_11 = node_id_hash(&dot_structures::Id::Plain(String::from("11"))); - let node_10 = node_id_hash(&dot_structures::Id::Plain(String::from("10"))); - - let diff_12 = graph.graph_map.get(&node_12).unwrap(); - let diff_12 = PerspectiveDiffEntryReference::try_from(diff_12.to_owned()).unwrap(); - assert_eq!(diff_12.parents, Some(vec![node_11, node_10])); -} - -#[test] -fn example_test() { - use crate::link_adapter::workspace::Workspace; - - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - *graph = MockPerspectiveGraph::new(GraphInput { - nodes: 6, - associations: vec![ - Associations { - node_source: 1, - node_targets: vec![0], - }, - Associations { - node_source: 2, - node_targets: vec![0], - }, - Associations { - node_source: 3, - node_targets: vec![1], - }, - Associations { - node_source: 4, - node_targets: vec![2], - }, - Associations { - node_source: 5, - node_targets: vec![3, 4], - }, - ], - }); - } - update(); - - let mut workspace = Workspace::new(); - let res = workspace.collect_until_common_ancestor::( - ActionHash::from_raw_36(vec![5; 36]), - ActionHash::from_raw_36(vec![4; 36]), - ); - println!("Got result: {:#?}", res); -} - -#[test] -fn can_get_and_create_mocked_holochain_objects() { - fn update() { - let mut graph = GLOBAL_MOCKED_GRAPH.lock().unwrap(); - let dot = "digraph { - 0 [ label = \"0\" ] - 1 [ label = \"1\" ] - 2 [ label = \"2\" ] - 3 [ label = \"3\" ] - 4 [ label = \"4\" ] - 5 [ label = \"5\" ] - 6 [ label = \"6\" ] - 7 [ label = \"7\" ] - 8 [ label = \"8\" ] - 9 [ label = \"9\" ] - 10 [ label = \"10\" ] - 11 [ label = \"11\" ] - 12 [ label = \"12\" ] - 1 -> 0 [ label = \"()\" ] - 2 -> 1 [ label = \"()\" ] - 3 -> 2 [ label = \"()\" ] - 4 -> 3 [ label = \"()\" ] - 5 -> 4 [ label = \"()\" ] - 6 -> 5 [ label = \"()\" ] - 7 -> 1 [ label = \"()\" ] - 8 -> 7 [ label = \"()\" ] - 9 -> 8 [ label = \"()\" ] - 10 -> 9 [ label = \"()\" ] - 11 -> 10 [ label = \"()\" ] - 12 -> 11 [ label = \"()\" ] - 12 -> 10 [ label = \"()\" ] - }"; - *graph = MockPerspectiveGraph::from_dot(dot).expect("Could not create graph"); - } - update(); - let diff_ref = MockPerspectiveGraph::get::(node_id_hash( - &dot_structures::Id::Plain(String::from("1")), - )); - assert!(diff_ref.is_ok()); - - use perspective_diff_sync_integrity::{ - EntryTypes, PerspectiveDiff, PerspectiveDiffEntryReference, - }; - let commit = MockPerspectiveGraph::create_entry(EntryTypes::PerspectiveDiff(PerspectiveDiff { - additions: vec![], - removals: vec![], - })); - assert!(commit.is_ok()); - - let get_commit = MockPerspectiveGraph::get::(commit.unwrap()); - assert!(get_commit.is_ok()); -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/mod.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/mod.rs deleted file mode 100644 index 9da170613..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub(crate) mod signal; -pub(crate) mod status; diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs deleted file mode 100644 index e7d616970..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs +++ /dev/null @@ -1,30 +0,0 @@ -use hdk::prelude::*; -use perspective_diff_sync_integrity::PerspectiveExpression; - -use super::status::get_dids_agent_key; -use crate::retriever::holochain::get_active_agents; -use crate::{errors::SocialContextResult, inputs::SignalData}; - -pub fn send_signal(signal_data: SignalData) -> SocialContextResult { - let agent = get_dids_agent_key(signal_data.remote_agent_did.clone())?; - // debug!( - // "PerspectiveDiffSync.send_signal() to DID: {:?} / HC: {:?}", - // signal_data.remote_agent_did, agent - // ); - match agent { - Some(agent) => send_remote_signal(signal_data.payload.clone().get_sb()?, vec![agent])?, - None => { - debug!("PerspectiveDiffSync.send_signal(): Could not send signal since we could not get the agents pub key from did"); - } - } - Ok(signal_data.payload) -} - -pub fn send_broadcast(data: PerspectiveExpression) -> SocialContextResult { - let active_agents = get_active_agents()?; - - //debug!("PerspectiveDiffSync.send_broadcast() to: {:?}", active_agents); - send_remote_signal(data.clone().get_sb()?, active_agents)?; - - Ok(data) -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs deleted file mode 100644 index 481b1f21c..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs +++ /dev/null @@ -1,235 +0,0 @@ -use hdk::prelude::*; - -use perspective_diff_sync_integrity::{ - Anchor, EntryTypes, LinkTypes, OnlineAgent, OnlineAgentAndAction, PerspectiveExpression, -}; - -use crate::errors::{SocialContextError, SocialContextResult}; -use crate::retriever::holochain::get_active_agents; - -pub fn set_online_status(status: PerspectiveExpression) -> SocialContextResult<()> { - let entry = EntryTypes::PrivateOnlineStatus(status); - create_entry(&entry)?; - Ok(()) -} - -pub fn get_online_status() -> SocialContextResult { - //Try and get my did - let my_did = get_my_did()?.ok_or(SocialContextError::NoDidFound)?; - - //Try and get my online status - let query = query( - QueryFilter::new() - .entry_type(EntryType::App(AppEntryDef { - entry_index: 7.into(), - zome_index: 0.into(), - visibility: EntryVisibility::Private, - })) - .include_entries(true) - .descending(), - ); - - let status = match query { - Ok(records) => { - if records.len() == 0 { - None - } else { - let record = records[0].clone(); - let entry = record - .entry - .to_app_option::() - .unwrap() - .unwrap(); - Some((entry, record.action_address().to_owned())) - } - } - Err(e) => { - debug!( - "PerspectiveDiffSync.current_revision(): Error when getting current revision: {:?}", - e - ); - None - } - }; - - let online_status = OnlineAgentAndAction { - did: my_did, - status: status.clone().map(|status| status.0), - status_action: status.map(|status| status.1), - }; - Ok(online_status) -} - -pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { - debug!("PerspectiveDiffSync.create_did_pub_key_link({:?})", did); - let agent_key = agent_info()?.agent_latest_pubkey; - debug!("PerspectiveDiffSync.create_did_pub_key_link() agent_key: {:?}", agent_key); - let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().get_options(GetStrategy::Network).build(); - let did_links = get_links(input)?; - debug!("PerspectiveDiffSync.create_did_pub_key_link() did_links: {:?}", did_links); - if did_links.len() == 0 { - - let entry = EntryTypes::Anchor(Anchor(did)); - let _did_entry = create_entry(&entry)?; - let did_entry_hash = hash_entry(entry)?; - create_link( - agent_key.clone(), - did_entry_hash.clone(), - LinkTypes::DidLink, - LinkTag::new("did_link"), - )?; - create_link( - did_entry_hash, - agent_key, - LinkTypes::DidLink, - LinkTag::new("did_link"), - )?; - } - Ok(()) -} - -pub fn get_my_did() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - agent_info()?.agent_latest_pubkey, - LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut did_links = get_links(input)?; - if did_links.len() > 0 { - let did = get( - did_links - .remove(0) - .target - .into_entry_hash() - .expect("Could not get entry_hash"), - GetOptions::network(), - )? - .ok_or(SocialContextError::InternalError( - "Could not find did entry for given did entry reference", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - Ok(Some(did.0)) - } else { - Ok(None) - } -} - -pub fn get_dids_agent_key(did: String) -> SocialContextResult> { - let did_entry = Anchor(did); - let did_entry_hash = hash_entry(EntryTypes::Anchor(did_entry.clone()))?; - let input = GetLinksInputBuilder::try_new( - did_entry_hash, - LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let did_links = get_links(input)?; - debug!("PerspectiveDiffSync.get_dids_agent_key() did_links: {:?}", did_links); - if did_links.len() > 0 { - let entry: EntryHash = did_links[0].target.clone().try_into().unwrap(); - Ok(Some(AgentPubKey::from(entry))) - } else { - Ok(None) - } -} - -pub fn get_agents_did_key(agent: AgentPubKey) -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( - agent, - LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut did_links = get_links(input)?; - if did_links.len() > 0 { - let did = get( - did_links - .remove(0) - .target - .into_entry_hash() - .expect("Could not get entry_hash"), - GetOptions::network(), - )? - .ok_or(SocialContextError::InternalError( - "Could not find did entry for given did entry reference", - ))? - .entry() - .to_app_option::()? - .ok_or(SocialContextError::InternalError( - "Expected element to contain app entry data", - ))?; - Ok(Some(did.0)) - } else { - Ok(None) - } -} - -pub fn get_others() -> SocialContextResult> { - let active_agents = get_active_agents()?; - let mut others = Vec::new(); - for active_agent in active_agents { - let did_key = get_agents_did_key(active_agent)?; - if did_key.is_some() { - others.push(did_key.unwrap()); - } - } - Ok(others) -} - -pub fn get_online_agents() -> SocialContextResult> { - let active_agents = get_active_agents()?; - let mut online_agents = Vec::new(); - for active_agent in active_agents { - let online_agent_status = get_agents_status(active_agent); - if online_agent_status.is_some() { - online_agents.push(online_agent_status.unwrap()); - } - } - Ok(online_agents) -} - -pub fn get_agents_status(agent: AgentPubKey) -> Option { - let online_agent_status = call_remote( - agent.clone(), - "perspective_diff_sync", - "get_online_status".into(), - None, - {}, - ); - if online_agent_status.is_ok() { - let online_agent_response = online_agent_status.unwrap(); - match online_agent_response { - ZomeCallResponse::Ok(online_agent) => { - let online_agent = online_agent - .decode::() - .expect("Could not decode online agent"); - Some(OnlineAgent { - did: online_agent.did, - status: online_agent.status, - }) - } - ZomeCallResponse::Unauthorized(..) => { - debug!("Unauthorized to call agent {}", agent.clone()); - None - } - ZomeCallResponse::NetworkError(..) => { - debug!("Agent {} is offline", agent.clone()); - None - } - ZomeCallResponse::CountersigningSession(_) => { - debug!("Agent {} had countersigning session error", agent); - None - } - } - } else { - None - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/utils.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/utils.rs deleted file mode 100644 index 6f5ccf2c5..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync/src/utils.rs +++ /dev/null @@ -1,46 +0,0 @@ -use chrono::{DateTime, NaiveDateTime, Utc}; -use hdk::prelude::*; -use std::hash::Hash; - -use crate::errors::SocialContextResult; -use perspective_diff_sync_integrity::{ExpressionProof, LinkExpression, Triple}; - -pub fn get_now() -> SocialContextResult> { - match sys_time() { - Ok(time) => { - let now = time.as_seconds_and_nanos(); - Ok(DateTime::::from_utc( - NaiveDateTime::from_timestamp(now.0, now.1), - Utc, - )) - } - Err(_err) => Ok(Utc::now()), - } -} - -pub fn dedup(vs: &Vec) -> Vec { - let hs = vs.iter().cloned().collect::>(); - - hs.into_iter().collect() -} - -pub(crate) fn err(reason: &str) -> WasmError { - wasm_error!(WasmErrorInner::Host(String::from(reason))) -} - -#[allow(dead_code)] -pub fn create_link_expression(source: &str, target: &str) -> LinkExpression { - LinkExpression { - author: String::from("Test author"), - data: Triple { - source: Some(String::from(source)), - predicate: None, - target: Some(String::from(target)), - }, - timestamp: DateTime::::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc), - proof: ExpressionProof { - signature: String::from("sig"), - key: String::from("key"), - }, - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml deleted file mode 100644 index cd5cbde29..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -authors = ["josh@junto.foundation"] -edition = "2021" -name = "perspective_diff_sync_integrity" -version = "0.0.1" - -[lib] -crate-type = ["cdylib", "rlib"] -name = "perspective_diff_sync_integrity" - -[dependencies] -derive_more = "0" -serde = "1" -chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } - -hdi = { version = "0.6.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -hdk = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } -holochain_serialized_bytes = { version = "=0.0.56", git = "https://github.com/holochain/holochain-serialization"} -holo_hash = { version = "0.5.2", git = "https://github.com/coasys/holochain.git", branch = "0.5.2-coasys" } \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/impls.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/impls.rs deleted file mode 100644 index f6b11084e..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/impls.rs +++ /dev/null @@ -1,68 +0,0 @@ -use std::cmp::Ordering; - -use hdk::prelude::*; - -use crate::{ - Anchor, HashBroadcast, OnlineAgent, PerspectiveDiff, PerspectiveDiffEntryReference, - PerspectiveExpression, -}; - -impl PerspectiveDiff { - pub fn get_sb(self) -> ExternResult { - self.try_into() - .map_err(|error| wasm_error!(WasmErrorInner::Host(String::from(error)))) - } -} - -impl Anchor { - pub fn get_sb(self) -> ExternResult { - self.try_into() - .map_err(|error| wasm_error!(WasmErrorInner::Host(String::from(error)))) - } -} - -impl PerspectiveExpression { - pub fn get_sb(self) -> ExternResult { - self.try_into() - .map_err(|error| wasm_error!(WasmErrorInner::Host(String::from(error)))) - } -} - -impl OnlineAgent { - pub fn get_sb(self) -> ExternResult { - self.try_into() - .map_err(|error| wasm_error!(WasmErrorInner::Host(String::from(error)))) - } -} - -impl HashBroadcast { - pub fn get_sb(self) -> ExternResult { - self.try_into() - .map_err(|error| wasm_error!(WasmErrorInner::Host(String::from(error)))) - } -} - -impl PerspectiveDiffEntryReference { - pub fn new( - diff: HoloHash, - parents: Option>>, - ) -> Self { - Self { - diff: diff, - parents: parents, - diffs_since_snapshot: 0, - } - } -} - -impl PartialOrd for PerspectiveDiffEntryReference { - fn partial_cmp(&self, other: &Self) -> Option { - self.diff.partial_cmp(&other.diff) - } -} - -impl Ord for PerspectiveDiffEntryReference { - fn cmp(&self, other: &Self) -> Ordering { - self.diff.cmp(&other.diff) - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/lib.rs b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/lib.rs deleted file mode 100644 index 9d4f00019..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/perspective_diff_sync_integrity/src/lib.rs +++ /dev/null @@ -1,169 +0,0 @@ -use chrono::{DateTime, Utc}; -use hdi::prelude::*; - -pub mod impls; - -#[derive( - Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq, Eq, Hash, Ord, PartialOrd, -)] -pub struct ExpressionProof { - pub signature: String, - pub key: String, -} - -#[derive( - Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq, Eq, Hash, Ord, PartialOrd, -)] -pub struct Triple { - pub source: Option, - pub target: Option, - pub predicate: Option, -} - -#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)] -pub struct LinkExpression { - pub author: String, - pub data: Triple, - pub timestamp: DateTime, - pub proof: ExpressionProof, -} - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes, Default)] -pub struct PerspectiveDiff { - pub additions: Vec, - pub removals: Vec, -} - -///The reference that is sent to other agents, denotes the position in the DAG as well as the data at that position -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct HashBroadcast { - pub reference_hash: HoloHash, - pub reference: PerspectiveDiffEntryReference, - pub diff: PerspectiveDiff, - pub broadcast_author: String, -} - -impl PerspectiveDiff { - pub fn new() -> Self { - Self { - additions: Vec::new(), - removals: Vec::new(), - } - } - pub fn total_diff_number(&self) -> usize { - self.additions.len() + self.removals.len() - } -} - -app_entry!(PerspectiveDiff); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct Snapshot { - pub diff_chunks: Vec>, - pub included_diffs: Vec>, -} - -app_entry!(Snapshot); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes, PartialEq, Eq, Hash)] -pub struct PerspectiveDiffEntryReference { - pub diff: HoloHash, - pub parents: Option>>, - pub diffs_since_snapshot: usize, -} - -app_entry!(PerspectiveDiffEntryReference); - -#[derive(Clone, Serialize, Deserialize, Debug)] -pub struct Perspective { - pub links: Vec, -} - -//TODO: this can likely be removed and instead just reference the PerspectiveDiffEntry/MergeEntry directly? -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct HashReference { - pub hash: HoloHash, - pub timestamp: DateTime, -} - -app_entry!(HashReference); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct LocalHashReference { - pub hash: HoloHash, - pub timestamp: DateTime, -} - -app_entry!(LocalHashReference); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct LocalTimestampReference { - pub timestamp_reference: DateTime, -} - -app_entry!(LocalTimestampReference); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct Anchor(pub String); - -app_entry!(Anchor); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct PerspectiveExpression { - pub author: String, - pub data: Perspective, - pub timestamp: DateTime, - pub proof: ExpressionProof, -} - -app_entry!(PerspectiveExpression); - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct OnlineAgent { - pub did: String, - pub status: Option, -} - -#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] -pub struct OnlineAgentAndAction { - pub did: String, - pub status: Option, - pub status_action: Option, -} - -#[derive(Debug, Serialize, Deserialize, SerializedBytes)] -pub struct PullResult { - pub diff: PerspectiveDiff, - pub current_revision: Option>, -} - -#[hdk_entry_types] -#[unit_enum(UnitEntryTypes)] -pub enum EntryTypes { - #[entry_type(visibility = "public")] - PerspectiveDiff(PerspectiveDiff), - #[entry_type(visibility = "public")] - Snapshot(Snapshot), - #[entry_type(visibility = "public")] - HashReference(HashReference), - #[entry_type(visibility = "public")] - PerspectiveDiffEntryReference(PerspectiveDiffEntryReference), - #[entry_type(visibility = "private")] - LocalHashReference(LocalHashReference), - #[entry_type(visibility = "private")] - LocalTimestampReference(LocalTimestampReference), - #[entry_type(visibility = "public")] - Anchor(Anchor), - #[entry_type(visibility = "private")] - PrivateOnlineStatus(PerspectiveExpression), -} - -#[hdk_link_types] -pub enum LinkTypes { - Snapshot, - ActiveAgent, - HashRef, - TimePath, - Index, - DidLink, -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/common.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/common.ts deleted file mode 100644 index d93421ff6..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/common.ts +++ /dev/null @@ -1,6 +0,0 @@ -import path from "path"; -import {Dna} from "@holochain/tryorama"; - -const dnas: Dna[] = [{ source: {path: path.join("../../workdir/perspective-diff-sync.dna")} }]; - -export { dnas }; \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/download-hc-binaries.sh b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/download-hc-binaries.sh deleted file mode 100755 index e78e813ec..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/download-hc-binaries.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" - -if [ ! -f "./hc" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 - mv hc-linux-0.1.0 ./hc - chmod +x ./hc -fi - -if [ ! -f "./holochain" ]; then - wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 - mv holochain-linux-0.1.0 ./holochain - chmod +x ./holochain -fi \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/index.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/index.ts deleted file mode 100644 index 1544f6e95..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { render, renderMerges } from "./render"; -import { unSyncFetch, mergeFetch, mergeFetchDeep } from "./pull"; -import { testRevisionUpdates } from "./revisions"; -import { stressTest } from "./stress" -import { signals } from "./signals"; -import { testTelepresence } from "./telepresence"; - -import test from "tape-promise/tape.js"; - -test("unsynced fetch", async (t) => { - await unSyncFetch(t); -}) - -test("merge fetch", async (t) => { - await mergeFetch(t); -}) - -test("merge fetch deep", async (t) => { - await mergeFetchDeep(t); -}) - -//test("stress", async (t) => { -// await stressTest(t); -//}) - - -//test("complex merge", async (t) => { -// await complexMerge(t); -//}) - -test("test revision updates", async (t) => { - await testRevisionUpdates(t); -}) - -test("render", async (t) => { - await render(t) -}) - -test("render merges", async (t) => { - await renderMerges(t) -}) - -test("signals", async (t) => { - await signals(t) -}) - -test("telepresence", async (t) => { - await testTelepresence(t) -}) diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/package.json b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/package.json deleted file mode 100644 index 5dbefab7c..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "perspective-diff-sync-tests", - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts", - "build-test": "cd ../../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown --features test && hc dna pack workdir && cd zomes/tests && npm test", - "build": "cd ../../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown --features test && hc dna pack workdir && cd zomes/tests", - "build-ci": "cd ../../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown --features test && ./zomes/tests/hc dna pack workdir && cd zomes/tests", - "test-pull": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node pull.ts", - "test-render": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node render.ts", - "test-revisions": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node revisions.ts", - "test-signals": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node signals.ts", - "test-stress": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node stress.ts", - "test-telepresence": "PATH=$PATH:$(pwd) TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node telepresence.ts" - }, - "author": "", - "license": "ISC", - "dependencies": { - "@holochain/client": "0.16.1", - "@holochain/tryorama": "0.15.0", - "@perspect3vism/ad4m": "^0.2.12", - "@types/lodash": "^4.14.158", - "@types/node": "^18.0.0", - "blake2b": "^2.1.3", - "divide-bigint": "^1.0.4", - "faker": "5.5.3", - "lodash": "^4.17.19", - "tape-promise": "^4.0.0" - }, - "devDependencies": { - "@types/faker": "^5.5.3", - "@types/tape-promise": "^4.0.1", - "tape": "^5.5.3", - "ts-node": "^10.8.0", - "typescript": "^4.2.4" - }, - "type": "module" -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/pull.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/pull.ts deleted file mode 100644 index 8db065701..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/pull.ts +++ /dev/null @@ -1,273 +0,0 @@ -import { addAllAgentsToAllConductors, cleanAllConductors } from "@holochain/tryorama"; -import { call, sleep, generate_link_expression, createConductors, create_link_expression} from "./utils"; -import test from "tape-promise/tape.js"; - -// //@ts-ignore -// export async function unSyncFetch(t) { -// let installs = await createConductors(2); -// let aliceHapps = installs[0].agent_happ; -// let conductor1 = installs[0].conductor; -// let bobHapps = installs[1].agent_happ; -// let conductor2 = installs[1].conductor; -// await addAllAgentsToAllConductors([conductor1, conductor2]); - -// //Create did/pub key link for alice and bob -// await aliceHapps.cells[0].callZome({ -// zome_name: "perspective_diff_sync", -// fn_name: "create_did_pub_key_link", -// payload: "did:test:alice" -// }); -// await bobHapps.cells[0].callZome({ -// zome_name: "perspective_diff_sync", -// fn_name: "create_did_pub_key_link", -// payload: "did:test:bob" -// }); - -// let commit = await aliceHapps.cells[0].callZome({ -// zome_name: "perspective_diff_sync", -// fn_name: "commit", -// payload: {additions: [generate_link_expression("alice")], removals: []} -// }); -// console.warn("\ncommit", commit); - -// // need to for gossip to have commit be seen by bob -// await sleep(5000) - -// const pull_bob = await bobHapps.cells[0].callZome({ -// zome_name: "perspective_diff_sync", -// fn_name: "pull", -// payload: { hash: commit, is_scribe: false } -// }); -// //@ts-ignore -// t.equal(pull_bob.diff.additions.length, 1); - -// await conductor1.shutDown(); -// await conductor2.shutDown(); -// await cleanAllConductors(); -// }; - -//@ts-ignore -export async function mergeFetchDeep(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let aliceConductor = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let bobConductor = installs[1].conductor; - - //Create new commit whilst bob is not connected - let create = await create_link_expression(aliceHapps.cells[0], "alice"); - let create2 = await create_link_expression(aliceHapps.cells[0], "alice"); - let create3 = await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - - //Pull from bob and make sure he does not have the latest state - let pull_bob = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull" - }); - //@ts-ignore - t.isEqual(pull_bob.diff.additions.length, 0); - - //Bob to commit his data, and update the latest revision, causing a fork - let bob_create = await create_link_expression(bobHapps.cells[0], "bob"); - let bob_create2 = await create_link_expression(bobHapps.cells[0], "bob"); - let bob_create3 = await create_link_expression(bobHapps.cells[0], "bob"); - let bob_create4 = await create_link_expression(bobHapps.cells[0], "bob"); - await create_link_expression(bobHapps.cells[0], "bob"); - await create_link_expression(bobHapps.cells[0], "bob"); - await create_link_expression(bobHapps.cells[0], "bob"); - - let pull_bob2 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull" - }); - //@ts-ignore - t.isEqual(pull_bob2.diff.additions.length, 0); - - //Connect nodes togther - await addAllAgentsToAllConductors([aliceConductor, bobConductor]); - //note; running this test on some machines may require more than 200ms wait - await sleep(500) - - //Alice tries to merge - let merge_alice = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull" - }); - //@ts-ignore - t.isEqual(merge_alice.diff.additions.length, 7); - //@ts-ignore - t.isEqual(JSON.stringify(merge_alice.additions[0]), JSON.stringify(bob_create.data)); - - //note; running this test on some machines may require more than 200ms wait - await sleep(2000) - - let pull_bob3 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull" - }); - console.warn("bob pull3", pull_bob3); - //@ts-ignore - t.isEqual(pull_bob3.diff.additions.length, 7); - //@ts-ignore - console.log(pull_bob3.diff.additions[0].data); - //@ts-ignore - t.isEqual(JSON.stringify(pull_bob3.diff.additions[0]), JSON.stringify(create.data)); - //@ts-ignore - t.isEqual(JSON.stringify(pull_bob3.diff.additions[1]), JSON.stringify(create2.data)); - - //Shutdown alice conductor - await aliceConductor.shutDown(); - - //Have bob write three links - await create_link_expression(bobHapps.cells[0], "bob"); - await create_link_expression(bobHapps.cells[0], "bob"); - await create_link_expression(bobHapps.cells[0], "bob"); - - //shutdown bobs conductor - await bobConductor.shutDown(); - - //Have alice write three links - await aliceConductor.startUp(); - await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - await create_link_expression(aliceHapps.cells[0], "alice"); - - //start bobs conductor and pull to see if merge happens correctly - await bobConductor.startUp(); - let pull_bob4 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull" - }); - console.warn("bob pull4", pull_bob4); - //@ts-ignore - t.isEqual(pull_bob4.diff.additions.length, 3); - //@ts-ignore - console.log(pull_bob4.diff.additions[0].data); - //@ts-ignore - t.isEqual(JSON.stringify(pull_bob4.additions[0]), JSON.stringify(create.data)); - //@ts-ignore - t.isEqual(JSON.stringify(pull_bob4.additions[1]), JSON.stringify(create2.data)); - - await cleanAllConductors(); -} - -//@ts-ignore -export async function mergeFetch(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let aliceConductor = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let bobConductor = installs[1].conductor; - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - - //Create new commit whilst bob is not connected - let link_data = generate_link_expression("alice"); - console.log("Alice posting link data", link_data); - let commit = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [link_data], removals: []} - }); - //@ts-ignore - console.warn("\ncommit", commit.toString("base64")); - - await sleep(1000) - - let bob_pull_failed = false - try{ - // Pull from bob who is not connected to alice yet - // to show that this will fail (because `commit` could not be found) - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull", - payload: { hash: commit, is_scribe: false } - }); - } catch(e) { - bob_pull_failed = true - } - - t.assert(bob_pull_failed) - - - //Bob to commit his data, and update the latest revision, causing a fork - let bob_link_data = generate_link_expression("bob"); - console.log("Bob posting link data", bob_link_data); - let commit_bob = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [bob_link_data], removals: []} - }); - //@ts-ignore - console.warn("\ncommit_bob", commit_bob.toString("base64")); - - //Connect nodes togther - await addAllAgentsToAllConductors([aliceConductor, bobConductor]); - //note; running this test on some machines may require more than 200ms wait - await sleep(1000) - - //Alice tries to merge - let merge_alice = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull", - payload: { hash: commit_bob, is_scribe: true } - }); - //@ts-ignore - t.isEqual(merge_alice.diff.additions.length, 1); - //@ts-ignore - t.isEqual(JSON.stringify(merge_alice.diff.additions[0].data), JSON.stringify(bob_link_data.data)); - - const alice_merge_commit = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision", - }); - - //note; running this test on some machines may require more than 200ms wait - await sleep(2000) - - let pull_bob3 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "pull", - payload: { hash: alice_merge_commit, is_scribe: false } - }); - console.warn("bob pull3", pull_bob3); - //@ts-ignore - t.isEqual(pull_bob3.diff.additions.length, 1); - //@ts-ignore - console.log(pull_bob3.diff.additions[0].data); - //@ts-ignore - t.isEqual(JSON.stringify(pull_bob3.diff.additions[0].data), JSON.stringify(link_data.data)); - - await aliceConductor.shutDown(); - await bobConductor.shutDown(); -} - - -test("pull", async (t) => { - //t.plan(20) - try { - //await unSyncFetch(t); - await mergeFetch(t); - } catch(e) { - console.error("Pull test failed with error", e); - //@ts-ignore - t.fail(e) - } finally { - t.end() - process.exit(0) - } -}) diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/queue.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/queue.ts deleted file mode 100644 index 005dd13fe..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/queue.ts +++ /dev/null @@ -1,82 +0,0 @@ -class Queue { - #queue: T[]; - - constructor() { - this.#queue = []; - } - - enqueue(func: T) { - this.#queue.push(func); - } - - dequeue() { - return this.#queue.shift(); - } - - get size(): number { - return this.#queue.length; - } -} - -export class AsyncQueue { - #queue = new Queue<() => any>(); - #pendingCount = 0; - - private next() { - this.#pendingCount--; - this.startAnotherFunc(); - } - - private startAnotherFunc(): boolean { - if (this.#queue.size === 0) { - return false; - } - - if (this.#pendingCount === 0) { - const func = this.#queue.dequeue(); - - if (!func) { - return false; - } - - func(); - - return true; - } - - return false; - } - - async add(func: () => void) { - return new Promise((resolve, reject) => { - const job = async () => { - this.#pendingCount++; - - try { - const result = await func(); - resolve(result); - } catch(error) { - reject(error); - } - - this.next(); - } - - this.#queue.enqueue(job); - this.startAnotherFunc(); - }); - } - - async addAll(funcs: Array<() => void>) { - return Promise.all(funcs.map(async func => this.add(func))) - } - - get pendingCount(): number { - return this.#pendingCount; - } - - clear() { - this.#queue = new Queue<() => any>(); - this.#pendingCount = 0; - } -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/render.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/render.ts deleted file mode 100644 index 987309c93..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/render.ts +++ /dev/null @@ -1,270 +0,0 @@ -import { addAllAgentsToAllConductors, cleanAllConductors } from "@holochain/tryorama"; -import { call, sleep, generate_link_expression, createConductors} from "./utils"; -import test from "tape-promise/tape.js"; - -//NOTE; these tests are dependant on the SNAPSHOT_INTERVAL in lib.rs being set to 2 -//@ts-ignore -export async function render(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let conductor1 = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let conductor2 = installs[1].conductor; - await addAllAgentsToAllConductors([conductor1, conductor2]); - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - - console.log("RENDER 1") - let commit = await call(aliceHapps, "commit", { - additions: [generate_link_expression("alice1")], - removals: [] - }); - console.warn("\ncommit", commit); - - await call(aliceHapps, "update_current_revision", commit); - - let commit2 = await call(aliceHapps, "commit", { - additions: [generate_link_expression("alice2")], - removals: [] - }); - console.warn("\ncommit", commit2); - - console.log("RENDER 2") - - await call(aliceHapps, "update_current_revision", commit2); - - let alice_rendered = await call(aliceHapps, "render"); - //@ts-ignore - t.equal(alice_rendered.links.length, 2) - - await sleep(5000); - - console.log("RENDER 3") - - // Bob hasn't pulled yet, so render on Bob should fail - let firstRenderFailed = false - try { - let bob_render = await call(bobHapps, "render"); - } catch(e) { - firstRenderFailed = true - } - - t.assert(firstRenderFailed) - - await call(bobHapps, "pull", { hash: commit2, is_scribe: false }) - - console.log("Bob has pulled") - - let bob_render = await call(bobHapps, "render"); - - - console.log("RENDER 4") - console.warn("bob rendered with", bob_render); - //@ts-ignore - t.deepEqual(bob_render.links.length, 2); - - await call(bobHapps, "update_current_revision", commit2); - - let commit4 = await call(bobHapps, "commit", { - additions: [generate_link_expression("bob3")], - removals: [] - }); - console.warn("\ncommit", commit4); - - await call(bobHapps, "update_current_revision", commit4); - - - let commit5 = await call(bobHapps, "commit", { - additions: [generate_link_expression("bob4")], - removals: [] - }); - console.warn("\ncommit", commit5); - - await call(bobHapps, "update_current_revision", commit5); - - await sleep(1000); - - console.log("RENDER 5") - await call(aliceHapps, "pull", { hash: commit5, is_scribe: true }); - let alice_render = await call(aliceHapps, "render"); - console.warn("Alice rendered with", alice_render); - //@ts-ignore - t.deepEqual(alice_render.links.length, 4); - - await conductor1.shutDown(); - await conductor2.shutDown(); - await cleanAllConductors(); -}; - -//@ts-ignore -export async function renderMerges(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let conductor1 = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let conductor2 = installs[1].conductor; - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - - console.log("commit1"); - let commit = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("alice1")], removals: []} - }); - console.warn("\ncommit", commit); - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit - }); - - console.log("commit2"); - let commit2 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("alice2")], removals: []} - }); - console.warn("\ncommit", commit2); - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit2 - }); - - console.log("commit3"); - let commit3 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("bob1")], removals: []} - }); - console.warn("\ncommit", commit3); - - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit3 - }); - - console.log("commit4"); - let commit4 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("bob2")], removals: []} - }); - console.warn("\ncommit", commit4); - - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit4 - }); - - console.log("bob render"); - let bob_render = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "render" - }); - console.warn("bob rendered with", bob_render); - //@ts-ignore - t.isEqual(bob_render.links.length, 2); - - console.log("alice render"); - let alice_render = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "render" - }); - console.warn("Alice rendered with", alice_render); - //@ts-ignore - t.isEqual(alice_render.links.length, 2); - - await addAllAgentsToAllConductors([conductor1, conductor2]); - await sleep(500); - - //Test getting revision, should return bob's revision since that is the latest entry - - //Alice commit which will create a merge and another entry - console.log("commit5"); - let commit5 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("alice3")], removals: []} - }); - console.warn("\ncommit5", commit5); - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit5 - }); - - //Alice commit which should not create another snapshot - console.log("commit6"); - let commit6 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [generate_link_expression("alice4")], removals: []} - }); - console.warn("\ncommit6", commit6); - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "update_current_revision", - payload: commit6 - }); - await sleep(2000) - - console.log("bob pull"); - await call(bobHapps, "pull", { hash: commit6, is_scribe: true }) - - console.log("bob render"); - let bob_render2 = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "render" - }); - console.warn("bob rendered with", bob_render2); - //@ts-ignore - t.isEqual(bob_render2.links.length, 6); - - console.log("alice render"); - let alice_render2 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "render" - }); - console.warn("Alice rendered with", alice_render2); - //@ts-ignore - t.isEqual(alice_render2.links.length, 4); - - await conductor1.shutDown(); - await conductor2.shutDown(); - await cleanAllConductors(); -} - -test("render", async (t) => { - await render(t) - await renderMerges(t) - t.end() - process.exit(0); -}) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/revisions.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/revisions.ts deleted file mode 100644 index 75b274839..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/revisions.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { addAllAgentsToAllConductors, cleanAllConductors } from "@holochain/tryorama"; -import { sleep, createConductors, create_link_expression } from "./utils"; -import test from "tape-promise/tape.js"; - -//@ts-ignore -export async function testRevisionUpdates(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let aliceConductor = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let bobConductor = installs[1].conductor; - - await addAllAgentsToAllConductors([aliceConductor, bobConductor]); - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - - let current_revision = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision" - }); - console.warn("current_revision", current_revision); - - let commit = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [], removals: []} - }); - console.warn("\ncommit", commit); - - let current_revision2 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision" - }); - console.warn("current_revision2", current_revision2); - //@ts-ignore - t.isEqual(commit.toString(), current_revision2.toString()) - - await sleep(1000) - - //test bobs current revision is not updated - let bob_current_revision = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision" - }); - console.warn("bob_current_revision", bob_current_revision); - //@ts-ignore - t.isEqual(null, bob_current_revision); - - let commit2 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [], removals: []} - }); - //@ts-ignore - console.warn("\ncommit2", commit2); - - let current_revision3 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision" - }); - console.warn("current_revision3", current_revision3); - //@ts-ignore - t.isEqual(current_revision3.toString(), commit2.toString()); - - let current_revision4 = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "current_revision" - }); - console.warn("current_revision4", current_revision4); - //@ts-ignore - t.isEqual(commit2.toString(), current_revision4.toString()) - - await aliceConductor.shutDown(); - await bobConductor.shutDown(); - await cleanAllConductors(); -} - -test("test revision updates", async (t) => { - await testRevisionUpdates(t); - t.end() - process.exit(0) -}) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/signals.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/signals.ts deleted file mode 100644 index 7bb262780..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/signals.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Scenario } from "@holochain/tryorama"; -import { sleep, generate_link_expression } from "./utils"; -import { dnas } from "./common"; -import test from "tape-promise/tape.js"; -import { resolve } from "path"; - -//@ts-ignore -export async function signals(t) { - const scenario = new Scenario(); - let aliceSignalCount = 0; - let bobSignalCount = 0; - - const aliceHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - }, - } - ); - const portAlice = await aliceHapps.conductor.attachAppInterface(); - const appWs = await aliceHapps.conductor.connectAppWs(portAlice); - appWs.on("signal", (signal) => { - console.log("Alice Received Signal:",signal) - aliceSignalCount += 1; - }); - const bobHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - } - ); - const portBob = await bobHapps.conductor.attachAppInterface(); - const appWsBob = await bobHapps.conductor.connectAppWs(portBob); - appWsBob.on("signal", (signal) => { - console.log("Bob Received Signal:",signal) - bobSignalCount += 1; - }) - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - - - await scenario.shareAllAgents(); - - //Sleep to give time for bob active agent link to arrive at alice - await sleep(2000) - - //Test case where subject object and predicate are given - let bob_link_data = generate_link_expression("bob"); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [bob_link_data], removals: []} - }); - - //Test case where subject object and predicate are given - let link_data = generate_link_expression("alice"); - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [link_data], removals: []} - }); - //Sleep to give time for signals to arrive - await sleep(1000) - - t.deepEqual(bobSignalCount, 1); - - await scenario.cleanUp(); -} - -test("signals", async (t) => { - await signals(t) - t.end() - process.exit(0) -}) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/stress.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/stress.ts deleted file mode 100644 index 31765bcc0..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/stress.ts +++ /dev/null @@ -1,355 +0,0 @@ -import { AgentApp, addAllAgentsToAllConductors, cleanAllConductors, Conductor, Scenario } from "@holochain/tryorama"; -import { call, sleep, createConductors, create_link_expression, generate_link_expression} from "./utils"; -import ad4m, { DID, HolochainLanguageDelegate, LinkExpression, Perspective } from "@perspect3vism/ad4m" -import test from "tape-promise/tape.js"; -import { hrtime } from 'node:process'; -//@ts-ignore -import divide from 'divide-bigint' -import { AsyncQueue } from "./queue"; -import { resolve } from "path"; -import { dnas } from "./common"; -let createdLinks = new Map>() - -class PeerInfo { - currentRevision: Buffer | null = null; - lastSeen: Date = new Date(); -}; - -let aliceRevision: Buffer | null = null; -let bobRevision: Buffer | null = null; -let aliceDid = ""; -let bobDid = ""; - -async function createLinks(happ: AgentApp, agentName: string, count: number, queue?: AsyncQueue) { - if(!createdLinks.get(agentName)) createdLinks.set(agentName, []) - for(let i=0; i < count; i++) { - if (queue) { - await queue.add(async () => { - let { commitRaw, data } = await create_link_expression(happ.cells[0], agentName); - if (agentName === "alice") { - aliceRevision = commitRaw; - } else if (agentName === "bob") { - bobRevision = commitRaw; - } - createdLinks.get(agentName)!.push(data) - }).catch((e) => { - console.log("Error in create links queue", e); - }) - } else { - let { data } = await create_link_expression(happ.cells[0], agentName); - createdLinks.get(agentName)!.push(data) - } - } -} - -//@ts-ignore -export async function latestRevisionStress(t) { - let installs = await createConductors(2); - let aliceHapps = installs[0].agent_happ; - let aliceConductor = installs[0].conductor; - let bobHapps = installs[1].agent_happ; - let bobConductor = installs[1].conductor; - - await addAllAgentsToAllConductors([aliceConductor, bobConductor]); - - let link_data = generate_link_expression("alice"); - let commit = await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [link_data], removals: []} - }); - - for (let i = 0; i < 1000; i++) { - console.log("Latest update revision", i); - let now = performance.now(); - let create = await aliceHapps.cells[0].callZome({zome_name: "perspective_diff_sync", fn_name: "update_latest_revision", payload: commit}); - let after = performance.now(); - console.log(" Create execution took: ", after - now); - let fetch = await aliceHapps.cells[0].callZome({zome_name: "perspective_diff_sync", fn_name: "latest_revision"}); - let after2 = performance.now(); - console.log("Fetch execution took: ", after2 - after); - } -} - -async function gossip(peers: Map, me: DID, hcDna: HolochainLanguageDelegate) { - console.log("GOSSIP for ", me) - //@ts-ignore - await hcDna.call("DNA_NICK", "ZOME_NAME", "sync", null); - let lostPeers: DID[] = []; - - peers.forEach( (peerInfo, peer) => { - if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { - lostPeers.push(peer); - } - }); - - for (const peer of lostPeers) { - peers.delete(peer); - } - - // flatten the map into an array of peers - let allPeers = Array.from(peers.keys()) - allPeers.push(me); - // Lexically sort the peers - allPeers.sort(); - - // If we are the first peer, we are the scribe - let is_scribe = (allPeers[0] == me); - - console.log("IS SCRIBE", is_scribe, me) - - // Get a deduped set of all peer's current revisions - let revisions = new Set(); - for(const peerInfo of peers.values()) { - if (peerInfo.currentRevision) revisions.add(peerInfo.currentRevision); - } - - console.log(` - ====== - GOSSIP - -- - me: ${me} - is scribe: ${is_scribe} - -- - ${Array.from(peers.entries()).map( ([peer, peerInfo]) => { - //@ts-ignore - return `${peer}: ${peerInfo.currentRevision.toString('base64')} ${peerInfo.lastSeen.toISOString()}\n` - })} - -- - revisions: ${Array.from(revisions).map( (hash) => { - //@ts-ignore - return hash.toString('base64') - })} - `); - - revisions.forEach( async (hash) => { - console.log("PULLING", hash, is_scribe, aliceRevision, bobRevision) - if(!hash) return - if (me === aliceDid) { - if (hash === aliceRevision) { - console.log("Alice skipping pull since we already sync'd on this gossip loop"); - return - } - } - if (me === bobDid) { - if (hash === bobRevision) { - console.log("Bob skipping pull since we already sync'd on this gossip loop"); - return - } - } - let pullResult = await hcDna.call("DNA_NICK", "ZOME_NAME", "pull", { - hash, - is_scribe - }); - if (pullResult) { - let myRevision = pullResult.current_revision; - if (me === aliceDid) aliceRevision = myRevision; - if (me === bobDid) bobRevision = myRevision; - } - }) - } - -//@ts-ignore -export async function stressTest(t) { - const aliceQueue = new AsyncQueue(); - const bobQueue = new AsyncQueue(); - - const scenario = new Scenario(); - const aliceHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - }, - } - ); - const alicePeersList: Map = new Map(); - const portAlice = await aliceHapps.conductor.attachAppInterface(); - const appWs = await aliceHapps.conductor.connectAppWs(portAlice); - appWs.on("signal", (signal) => { - //console.log("Alice Received Signal:",signal); - const { diff, reference_hash, reference, broadcast_author } = signal.payload; - if (diff && reference_hash && reference && broadcast_author) { - console.log(`PerspectiveDiffSync.handleHolochainSignal: - diff: ${JSON.stringify(diff)} - reference_hash: ${reference_hash.toString('base64')} - reference: { - diff: ${reference.diff?.toString('base64')} - parents: ${reference.parents ? reference.parents.map( (parent: Buffer) => parent ? parent.toString('base64') : 'null').join(', '):'none'} - diffs_since_snapshot: ${reference?.diffs_since_snapshot} - } - broadcast_author: ${broadcast_author} - `) - alicePeersList.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); - } else { - console.log("PerspectiveDiffSync.handleHolochainSignal: got other signal:", signal.payload) - } - }); - const bobHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - } - ); - const bobPeersList: Map = new Map(); - const portBob = await bobHapps.conductor.attachAppInterface(); - const appWsBob = await bobHapps.conductor.connectAppWs(portBob); - appWsBob.on("signal", (signal) => { - console.log("Bob Received Signal:",signal) - const { diff, reference_hash, reference, broadcast_author } = signal.payload; - if (diff && reference_hash && reference && broadcast_author) { - bobPeersList.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); - } - }) - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:alice" - }); - aliceDid = "did:test:alice"; - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: "did:test:bob" - }); - bobDid = "did:test:bob"; - - let done = false; - async function processGossip() { - await Promise.all([gossip(alicePeersList, "did:test:alice", { - call: async (nick, zome, fn_name, payload) => { - await aliceQueue.add( async () => { - try{ - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name, - payload - }) - } catch(e) { - console.log("ERROR during alice zome call", e) - } - - }) - } - } as HolochainLanguageDelegate), - gossip(bobPeersList, "did:test:bob", { - call: async (nick, zome, fn_name, payload) => { - await bobQueue.add( async () => { - try { - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name, - payload - }) - } catch(e) { - console.log("ERROR during bob zome call", e) - } - - }) - } - } as HolochainLanguageDelegate)]) - await sleep(1000) - if(!done) { - processGossip() - } - - } - - processGossip() - - let aliceConductor = aliceHapps.conductor - let bobConductor = bobHapps.conductor; - let hash = Buffer.from((await aliceConductor.adminWs().listDnas())[0]); - - await addAllAgentsToAllConductors([aliceConductor, bobConductor]); - - console.log("==============================================") - console.log("=================START========================") - console.log("==============================================") - for(let i=0; i < 10; i++) { - console.log("-------------------------"); - console.log("Iteration: ", i) - console.log("-------------------------"); - const start = hrtime.bigint(); - await Promise.all([ - createLinks(aliceHapps, "alice", 20, aliceQueue), - createLinks(bobHapps, "bob", 20, bobQueue) - ]) - const end = hrtime.bigint(); - console.log(`Creating links took ${divide(end - start, 1000000)} ms`); - - console.log("-------------------------"); - console.log("Created 20 links each (Alice and Bob)"); - console.log("waiting a second"); - console.log("-------------------------"); - - await sleep(1000) - - console.log("-------------------------"); - console.log("All good :)))))))))))))))"); - console.log("-------------------------"); - - } - - // Wait for gossip of latest_revision, needed for render - await sleep(15000) - - done = true; - aliceQueue.clear(); - bobQueue.clear() - - const startRenderA = hrtime.bigint(); - let alice_rendered = await call(aliceHapps, "render") as Perspective - const endRenderA = hrtime.bigint(); - console.log(`Alice render took ${divide(endRenderA - startRenderA, 1000000)} ms`); - - const startRenderB = hrtime.bigint(); - let bob_rendered = await call(bobHapps, "render") as Perspective - const endRenderB = hrtime.bigint(); - console.log(`Bob render took ${divide(endRenderB - startRenderB, 1000000)} ms`); - - t.isEqual(alice_rendered.links.length, bob_rendered.links.length) - - function includes(perspective: Perspective, link: LinkExpression) { - return perspective.links.find(l => ad4m.linkEqual(l,link)) - } - - for(let link of createdLinks.get("alice")!) { - t.assert(includes(alice_rendered, link)) - t.assert(includes(bob_rendered, link)) - } - - await aliceConductor.shutDown(); - await bobConductor.shutDown(); - await cleanAllConductors(); -} - -test("stress", async (t) => { - await stressTest(t); - t.end() - process.exit(0) -}) diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/telepresence.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/telepresence.ts deleted file mode 100644 index 72391d3a0..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/telepresence.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { addAllAgentsToAllConductors, Scenario } from "@holochain/tryorama"; -import { sleep, generate_link_expression, sortedObject } from "./utils"; -import test from "tape-promise/tape.js"; -import { resolve } from "path"; -import { dnas } from "./common"; -import { PerspectiveExpression } from "@perspect3vism/ad4m"; - -function generate_perspective_expression(author: string, linkContent: string): PerspectiveExpression { - return { - author: author, - timestamp: new Date().toISOString(), - data: { - links: [generate_link_expression(linkContent)] - }, - proof: {signature: "sig", key: "key"}, - }; -} -//@ts-ignore -export async function testTelepresence(t) { - const scenario = new Scenario(); - let aliceSignalCount = 0; - let bobSignalCount = 0; - - const aliceHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - }, - } - ); - const portAlice = await aliceHapps.conductor.attachAppInterface(); - const appWs = await aliceHapps.conductor.connectAppWs(portAlice); - appWs.on("signal", (signal) => { - console.log("Alice Received Signal:",signal) - aliceSignalCount += 1; - }); - const bobHapps = await scenario.addPlayerWithApp( - { - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - } - ); - const portBob = await bobHapps.conductor.attachAppInterface(); - const appWsBob = await bobHapps.conductor.connectAppWs(portBob); - appWsBob.on("signal", (signal) => { - console.log("Bob Received Signal:",signal) - bobSignalCount += 1; - }) - - await scenario.shareAllAgents(); - await addAllAgentsToAllConductors([aliceHapps.conductor, bobHapps.conductor]); - - const bobDid = "did:key:bob"; - const aliceDid = "did:key:alice"; - - //Create did/pub key link for alice and bob - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: aliceDid - }); - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "create_did_pub_key_link", - payload: bobDid - }); - console.log("Set did pub key links"); - - //Sleep to give time for gossip - await sleep(2000) - - //Test setting and getting agent status - let perspectiveExpression = generate_perspective_expression(aliceDid, "alice"); - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "set_online_status", - payload: perspectiveExpression - }); - console.log("Set online status"); - - let bobSeenStatus = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "get_online_agents", - }); - //@ts-ignore - t.isEqual(bobSeenStatus.length, 1); - //@ts-ignore - t.equal(JSON.stringify(sortedObject(bobSeenStatus[0].status)), JSON.stringify(sortedObject(perspectiveExpression))); - //@ts-ignore - t.equal(JSON.stringify(sortedObject(bobSeenStatus[0].status.data.links[0])), JSON.stringify(sortedObject(perspectiveExpression.data.links[0]))); - - //Test that if alice updates her online status that bob sees the update, and does not get duplicates - perspectiveExpression = generate_perspective_expression(aliceDid, "alice2"); - - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "set_online_status", - payload: perspectiveExpression - }); - bobSeenStatus = await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "get_online_agents", - }); - //@ts-ignore - t.isEqual(bobSeenStatus.length, 1); - //@ts-ignore - t.equal(JSON.stringify(sortedObject(bobSeenStatus[0].status)), JSON.stringify(sortedObject(perspectiveExpression))); - //@ts-ignore - t.equal(JSON.stringify(sortedObject(bobSeenStatus[0].status.data.links[0])), JSON.stringify(sortedObject(perspectiveExpression.data.links[0]))); - - //Test sending signal to single agent - await aliceHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "send_signal", - payload: {remote_agent_did: "did:key:bob", payload: perspectiveExpression} - }); - //Sleep to give time for signals to arrive - await sleep(1000) - //@ts-ignore - t.isEqual(bobSignalCount, 1); - - - //Test sending broadcast - await bobHapps.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name: "send_broadcast", - payload: perspectiveExpression - }); - //Sleep to give time for signals to arrive - await sleep(1000) - //@ts-ignore - t.isEqual(aliceSignalCount, 1); - - await scenario.cleanUp(); -}; - -test("telepresence", async (t) => { - //t.plan(20) - try { - await testTelepresence(t); - } catch(e) { - console.error("telepresence test failed with error", e); - //@ts-ignore - t.fail(e) - } finally { - t.end() - process.exit(0) - } -}) diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/tsconfig.json b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/tsconfig.json deleted file mode 100644 index 0a629b1e4..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "module": "ESNext", - "target": "ESNext", - "moduleResolution": "Node", - "sourceMap": true, - "declaration": true, - "forceConsistentCasingInFileNames": true, - "allowSyntheticDefaultImports": true, - "skipLibCheck": true, - "strict": true - }, - "include": [ - "ts/**/*" - ] -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/utils.ts deleted file mode 100644 index 54744eb99..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/hc-dna/zomes/tests/utils.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { AgentApp, CallableCell, Conductor, NetworkType, enableAndGetAgentApp, runLocalServices } from "@holochain/tryorama"; -import faker from "faker"; -import { dnas } from './common'; -import { createConductor } from "@holochain/tryorama"; -import { resolve } from "path"; - -export async function call(happ: AgentApp, fn_name: string, payload?: any) { - return await happ.cells[0].callZome({ - zome_name: "perspective_diff_sync", - fn_name, - payload - }, 60000); -} - -export function generate_link_expression(agent: string) { - return { - data: {source: faker.name.findName(), target: faker.name.findName(), predicate: faker.name.findName()}, - author: agent, - timestamp: new Date().toISOString(), - proof: {signature: "sig", key: "key"}, - } -} - -export async function create_link_expression(cell: CallableCell, agent: string): Promise<{commit: string, data: any, commitRaw: Buffer}> { - let link_data = generate_link_expression(agent); - let commit = await cell.callZome({ - zome_name: "perspective_diff_sync", - fn_name: "commit", - payload: {additions: [link_data], removals: []} - }, 60000); - //@ts-ignore - return {commit: commit.toString("base64"), data: link_data, commitRaw: commit} -} - -export function sleep(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); -} - -export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { - let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; - - const localServices = await runLocalServices(); - - for (let n of Array(num).keys()) { - let conductor = await createConductor(localServices.signalingServerUrl, {networkType: NetworkType.WebRtc, bootstrapServerUrl: localServices.bootstrapServerUrl}); - let port = await conductor.attachAppInterface(); - let appWs = await conductor.connectAppWs(port); - try { - let app = await conductor.installApp({ - bundle: { - manifest: { - manifest_version: "1", - name: "perspective-diff-sync", - roles: [{ - name: "main", - dna: { - //@ts-ignore - path: resolve(dnas[0].source.path) - } - }] - }, - resources: {} - } - }); - const agentApp = await enableAndGetAgentApp(conductor.adminWs(), appWs, app); - out.push({ - agent_happ: agentApp, - conductor - }) - } catch (e) { - console.error(e); - } - } - return out -} - -//@ts-ignore -export function sortedObject(unordered) { - if(typeof unordered !== "object") return unordered; - return Object.keys(unordered).sort().reduce( - (obj, key) => { - //@ts-ignore - obj[key] = sortedObject(unordered[key]); - return obj; - }, {}); -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/index.ts b/bootstrap-languages/p-diff-sync-socket-signaling/index.ts deleted file mode 100644 index 92625a1d5..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { Address, Language, Interaction, HolochainLanguageDelegate, LanguageContext, AgentService } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; -import { LinkAdapter } from "./linksAdapter.ts"; -import { TelepresenceAdapterImplementation } from "./telepresenceAdapter.ts"; -import { DNA, DNA_NICK, ZOME_NAME } from "./build/dna.js"; - -function interactions(expression: Address): Interaction[] { - return []; -} - -//!@ad4m-template-variable -const name = "perspective-diff-sync"; - -//!@ad4m-template-variable -const uid = "perspective-diff-sync-uuid"; - -export default async function create(context: LanguageContext): Promise { - const Holochain = context.Holochain as HolochainLanguageDelegate; - const agent = context.agent as AgentService; - - const linksAdapter = new LinkAdapter(context, uid); - const telepresenceAdapter = new TelepresenceAdapterImplementation(context); - - await Holochain.registerDNAs( - //@ts-ignore - [{ file: DNA, nick: DNA_NICK, zomeCalls: - [ - [ZOME_NAME, "current_revision"], - [ZOME_NAME, "sync"], - [ZOME_NAME, "render"], - [ZOME_NAME, "commit"], - [ZOME_NAME, "fast_forward_signal"], - [ZOME_NAME, "get_others"], - [ZOME_NAME, "add_active_agent_link"], - [ZOME_NAME, "create_did_pub_key_link"], - ] - }], - async (signal) => { - //@ts-ignore - if (signal.payload.diff || (signal.payload.additions && signal.payload.removals)) { - await linksAdapter.handleHolochainSignal(signal) - } else { - for (const callback of telepresenceAdapter.signalCallbacks) { - await callback(signal.payload); - } - } - } - ); - - //Setup the link between did and agent pub key - await Holochain.call(DNA_NICK, ZOME_NAME, "create_did_pub_key_link", agent.did); - - //@ts-ignore - return { - name, - linksAdapter, - interactions, - telepresenceAdapter - } as Language; -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/integration-test.js b/bootstrap-languages/p-diff-sync-socket-signaling/integration-test.js deleted file mode 100644 index d94829b22..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/integration-test.js +++ /dev/null @@ -1,20 +0,0 @@ -const { spawnLinkAgent } = require("@coasys/ad4m-test/helpers"); - -describe("Link", () => { - it("Create Link", async () => { - const agent = await spawnLinkAgent(); - - const all = await agent.queryLinks({}); - - expect(all.length).toBe(0) - - const link = await agent.addLink({source:"root", predicate: "soic://test", target:"QmYVsrMpiFmV9S7bTWNAkUzSqjRJskQ8g4TWKKwKrHAPqL://QmSsCCtXMDAZXMpyiNLzwjGEU4hLmhG7fphidhEEodQ4Wy"}) - - const all1 = await agent.queryLinks({}); - - expect(all1.length).toBe(1) - expect(all1[0].data.source).toBe(link.data.source) - expect(all1[0].data.predicate).toBe(link.data.predicate) - expect(all1[0].data.target).toBe(link.data.target) - }); -}) \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/linksAdapter.ts b/bootstrap-languages/p-diff-sync-socket-signaling/linksAdapter.ts deleted file mode 100644 index 3701d6607..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/linksAdapter.ts +++ /dev/null @@ -1,378 +0,0 @@ -import { LinkSyncAdapter, PerspectiveDiffObserver, HolochainLanguageDelegate, LanguageContext, PerspectiveDiff, - LinkExpression, DID, Perspective, PerspectiveState } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; -import type { SyncStateChangeObserver } from "https://esm.sh/@perspect3vism/ad4m@0.5.0"; -import { Mutex, withTimeout } from "https://esm.sh/async-mutex@0.4.0"; -import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; -import { io } from "https://esm.sh/socket.io-client@4.7.2"; - -class PeerInfo { - //@ts-ignore - currentRevision: Buffer; - //@ts-ignore - lastSeen: Date; -}; - -export class LinkAdapter implements LinkSyncAdapter { - hcDna: HolochainLanguageDelegate; - linkCallback?: PerspectiveDiffObserver - syncStateChangeCallback?: SyncStateChangeObserver - peers: Map = new Map(); - generalMutex: Mutex = withTimeout(new Mutex(), 10000, new Error('PerspectiveDiffSync: generalMutex timeout')); - me: DID - gossipLogCount: number = 0; - myCurrentRevision: Buffer | null = null; - languageName: String | null = null; - socket: any; - - constructor(context: LanguageContext, name: String) { - //@ts-ignore - this.hcDna = context.Holochain as HolochainLanguageDelegate; - this.me = context.agent.did; - this.languageName = name; - this.socket = io("https://socket.ad4m.dev", { transports: ['websocket', 'polling'], autoConnect: true }); - console.log("Created socket connection"); - this.socket.on('error', (error: any) => { - console.error('Error:', error); - }); - this.socket.on('connect', () => { - console.log('Connected to the server'); - try { - this.socket.emit("join-room", this.languageName); - console.log("Sent the join-room signal"); - } catch (e) { - console.error("Error in socket connection: ", e); - } - }); - this.socket.on("signal", (signal: any) => { - this.handleHolochainSignal(signal); - }); - this.socket.on('disconnect', () => { - console.log('Disconnected from the server'); - }); - this.socket.on('connect_error', (error) => { - console.error('Connection Error:', error); - }); - this.socket.on('reconnect_attempt', () => { - console.log('Trying to reconnect...'); - }); - } - - writable(): boolean { - return true; - } - - public(): boolean { - return false; - } - - async others(): Promise { - //@ts-ignore - return await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_others", null); - } - - async currentRevision(): Promise { - //@ts-ignore - let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "current_revision", null); - return res as string; - } - - async sync(): Promise { - //console.log("PerspectiveDiffSync.sync(); Getting lock"); - const release = await this.generalMutex.acquire(); - //console.log("PerspectiveDiffSync.sync(); Got lock"); - try { - //@ts-ignore - let broadcast_payload = await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_broadcast_payload", null); - if (broadcast_payload) { - if (broadcast_payload.reference_hash && Buffer.isBuffer(broadcast_payload.reference_hash)) { - this.myCurrentRevision = broadcast_payload.reference_hash; - } - //Use client to send to socketIO - broadcast_payload.reference_hash = Buffer.from(broadcast_payload.reference_hash).toString('base64'); - broadcast_payload.reference.diff = Buffer.from(broadcast_payload.reference.diff).toString('base64'); - if (broadcast_payload.reference.parents) { - broadcast_payload.reference.parents = broadcast_payload.reference.parents.map( (parent: Buffer) => parent ? Buffer.from(parent).toString('base64') : 'null'); - }; - // console.log("sync(); sending referenceh hash", broadcast_payload.reference_hash); - // console.log("sync(); sending broadcast payload"); - // console.log(JSON.stringify(broadcast_payload)); - this.socket.emit("broadcast", {roomId: this.languageName, signal: broadcast_payload}); - } - } catch (e) { - console.error("PerspectiveDiffSync.sync(); got error", e); - } finally { - release(); - } - await this.gossip(); - return new PerspectiveDiff() - } - - async gossip() { - this.gossipLogCount += 1; - let lostPeers: DID[] = []; - - const release = await this.generalMutex.acquire(); - try { - this.peers.forEach( (peerInfo, peer) => { - if (peerInfo.lastSeen.getTime() + 10000 < new Date().getTime()) { - lostPeers.push(peer); - } - }); - - for (const peer of lostPeers) { - this.peers.delete(peer); - } - - // flatten the map into an array of peers - let peers = Array.from(this.peers.keys()); - peers.push(this.me); - - // Lexically sort the peers - peers.sort(); - - // If we are the first peer, we are the scribe - let is_scribe = peers[0] == this.me; - - // Get a deduped set of all peer's current revisions - let revisions = new Set(); - for(const peerInfo of this.peers.values()) { - if (peerInfo.currentRevision) revisions.add(peerInfo.currentRevision); - } - - //Do checking on incoming gossip revisions and see if we have the same hash as the majority of the peers - //Get a copied array of revisions that are the same as mine - let sameRevisions; - //Get a copied array of revisions that are different than mine - let differentRevisions; - - function generateRevisionStates(myCurrentRevision: Buffer) { - sameRevisions = revisions.size == 0 ? [] : Array.from(revisions).filter( (revision) => { - return myCurrentRevision && revision.equals(myCurrentRevision); - }); - if (myCurrentRevision) { - sameRevisions.push(myCurrentRevision); - }; - differentRevisions = revisions.size == 0 ? [] : Array.from(revisions).filter( (revision) => { - return myCurrentRevision && !revision.equals(myCurrentRevision); - }); - } - - async function checkSyncState(callback: SyncStateChangeObserver) { - if (sameRevisions.length > 0 || differentRevisions.length > 0) { - if (sameRevisions.length <= differentRevisions.length) { - await callback(PerspectiveState.LinkLanguageInstalledButNotSynced); - } else { - await callback(PerspectiveState.Synced); - }; - } - } - - //@ts-ignore - generateRevisionStates(this.myCurrentRevision); - - //@ts-ignore - await checkSyncState(this.syncStateChangeCallback); - - for (const hash of Array.from(revisions)) { - if(!hash) continue - if (this.myCurrentRevision && hash.equals(this.myCurrentRevision)) continue - console.log("Pulling with hash", hash); - let pullResult = await this.hcDna.call(DNA_NICK, ZOME_NAME, "pull", { - hash, - is_scribe - }); - if (pullResult) { - if (pullResult.current_revision && Buffer.isBuffer(pullResult.current_revision)) { - let myRevision = pullResult.current_revision; - this.myCurrentRevision = myRevision; - - //@ts-ignore - generateRevisionStates(this.myCurrentRevision); - //@ts-ignore - await checkSyncState(this.syncStateChangeCallback); - } - } - } - - //Only show the gossip log every 10th iteration - if (this.gossipLogCount == 10) { - console.log(` - ====== - GOSSIP - -- - me: ${this.me} - is scribe: ${is_scribe} - -- - ${Array.from(this.peers.entries()).map( ([peer, peerInfo]) => { - //@ts-ignore - return `${peer}: ${peerInfo.currentRevision.toString('base64')} ${peerInfo.lastSeen.toISOString()}\n` - })} - -- - revisions: ${Array.from(revisions).map( (hash) => { - //@ts-ignore - return hash.toString('base64') - })} - `); - this.gossipLogCount = 0; - } - } catch (e) { - console.error("PerspectiveDiffSync.gossip(); got error", e); - } finally { - release(); - } - } - - async render(): Promise { - //@ts-ignore - let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "render", null); - return new Perspective(res.links); - } - - async commit(diff: PerspectiveDiff): Promise { - //console.log("PerspectiveDiffSync.commit(); Getting lock"); - const release = await this.generalMutex.acquire(); - try { - //console.log("PerspectiveDiffSync.commit(); Got lock"); - let prep_diff = { - additions: diff.additions.map((diff) => prepareLinkExpression(diff)), - removals: diff.removals.map((diff) => prepareLinkExpression(diff)) - } - let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "commit", prep_diff); - if (res && Buffer.isBuffer(res)) { - this.myCurrentRevision = res; - } - let broadcast_payload = await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_broadcast_payload", null); - // console.log('commit got broadcast payload', broadcast_payload.referencence_hash); - // console.log("which has type", typeof broadcast_payload.reference_hash); - if (broadcast_payload) { - broadcast_payload.reference_hash = Buffer.from(broadcast_payload.reference_hash).toString('base64'); - broadcast_payload.reference.diff = Buffer.from(broadcast_payload.reference.diff).toString('base64'); - if (broadcast_payload.reference.parents) { - broadcast_payload.reference.parents = broadcast_payload.reference.parents.map( (parent: Buffer) => parent ? Buffer.from(parent).toString('base64') : 'null'); - }; - //console.log("commit sending referenceh hash", broadcast_payload.reference_hash); - this.socket.emit("broadcast", {roomId: this.languageName, signal: broadcast_payload}); - } - return res as string; - } catch (e) { - console.error("PerspectiveDiffSync.commit(); got error", e); - } finally { - release(); - } - } - - addCallback(callback: PerspectiveDiffObserver): number { - this.linkCallback = callback; - return 1; - } - - addSyncStateChangeCallback(callback: SyncStateChangeObserver): number { - this.syncStateChangeCallback = callback; - return 1; - } - - async handleHolochainSignal(signal: any): Promise { - let diff; - let reference_hash; - let reference; - let broadcast_author; - if (signal.payload) { - ({ diff, reference_hash, reference, broadcast_author } = signal.payload); - } else { - ({ diff, reference_hash, reference, broadcast_author } = signal); - } - // console.log("Setting a peer hash to", reference_hash); - // console.log(JSON.stringify(diff)); - // console.log("Reference", JSON.stringify(reference)); - // console.log(broadcast_author); - //Check if this signal came from another agent & contains a diff and reference_hash - if (diff && reference_hash && reference && broadcast_author) { - // console.log(`PerspectiveDiffSync.handleHolochainSignal: - // diff: ${JSON.stringify(diff)} - // reference_hash: ${reference_hash.toString('base64')} - // reference: { - // diff: ${reference.diff?.toString('base64')} - // parents: ${reference.parents ? reference.parents.map( (parent: Buffer) => parent ? parent.toString('base64') : 'null').join(', '):'none'} - // diffs_since_snapshot: ${reference?.diffs_since_snapshot} - // } - // broadcast_author: ${broadcast_author} - // `) - try { - //console.log("PerspectiveDiffSync.handleHolochainSignal: Getting lock"); - - //console.log("PerspectiveDiffSync.handleHolochainSignal: Got lock"); - //const parsed = JSON.parse(reference_hash); - // console.log("Handle holochain signal parsed ref hash"); - // console.log(JSON.stringify({ - // diff, - // reference_hash, - // reference, - // broadcast_author - // })); - if (!Buffer.isBuffer(reference_hash)) { - reference_hash = Buffer.from(reference_hash, 'base64'); - } - if (!Buffer.isBuffer(reference.diff)) { - reference.diff = Buffer.from(reference.diff, 'base64'); - } - if (reference.parents) { - reference.parents = reference.parents.map( (parent: string) => parent == 'null' ? null : Buffer.from(parent, 'base64')); - } - - await this.hcDna.call(DNA_NICK, ZOME_NAME, "handle_broadcast", { - diff, - reference_hash, - reference, - broadcast_author - }); - this.peers.set(broadcast_author, { currentRevision: reference_hash, lastSeen: new Date() }); - } catch (e) { - console.error("PerspectiveDiffSync.handleHolochainSignal: got error", e); - } - } else { - console.log("PerspectiveDiffSync.handleHolochainSignal: received a signals from ourselves in fast_forward_signal or in a pull: ", JSON.stringify(signal.payload)); - //This signal only contains link data and no reference, and therefore came from us in a pull in fast_forward_signal - if (this.linkCallback) { - console.log("PerspectiveDiffSync.handleHolochainSignal: calling linkCallback"); - await this.linkCallback(signal.payload); - } - } - } - - async addActiveAgentLink(hcDna: HolochainLanguageDelegate): Promise { - if (hcDna == undefined) { - console.warn("===Perspective-diff-sync: Error tried to add an active agent link but received no hcDna to add the link onto"); - } else { - return await hcDna.call( - DNA_NICK, - ZOME_NAME, - "add_active_agent_link", - //@ts-ignore - null - ); - } - } -} - -function prepareLinkExpression(link: LinkExpression): object { - const data = Object.assign(link); - if (data.data.source == "") { - data.data.source = null; - } - if (data.data.target == "") { - data.data.target = null; - } - if (data.data.predicate == "") { - data.data.predicate = null; - } - if (data.data.source == undefined) { - data.data.source = null; - } - if (data.data.target == undefined) { - data.data.target = null; - } - if (data.data.predicate == undefined) { - data.data.predicate = null; - } - return data; -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/package.json b/bootstrap-languages/p-diff-sync-socket-signaling/package.json deleted file mode 100644 index c92d172aa..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@coasys/perspective-diff-sync-socket-signaling", - "version": "0.7.1", - "description": "An AD4M language for syncing mutations to a share perspective", - "main": "index.js", - "scripts": { - "build-dna": "cd hc-dna && ./build.sh && cd ..", - "build": "run-script-os", - "build:linux": "pnpm run build-dna && pnpm run build-common", - "build:macos": "pnpm run build-dna && pnpm run build-common", - "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && pnpm run build-common", - "rollup-dna": "rollup -c rollup.config.hc-dna.js", - "build-common": "pnpm run rollup-dna && deno run --allow-all esbuild.ts", - "integration-test": "node ../../test-runner/build/cli.js --test ./integration-test.js --bundle \"./build/bundle.js\" --meta '{\"name\":\"p-diff-sync\",\"description\":\"Holochain based language for sharing Perspectives\",\"sourceCodeLink\":\"https://github.com/perspect3vism/perspective-diff-sync\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'" - }, - "author": "", - "license": "ISC", - "dependencies": { - "@coasys/ad4m": "*", - "@perspect3vism/rollup-plugin-dna": "^0.0.2", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "@types/node": "^18.0.0", - "faker": "^5.5.3", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^4.5.5" - }, - "devDependencies": { - "run-script-os": "^1.1.6" - } -} diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/rollup.config.hc-dna.js b/bootstrap-languages/p-diff-sync-socket-signaling/rollup.config.hc-dna.js deleted file mode 100644 index a1c1e1bbf..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/rollup.config.hc-dna.js +++ /dev/null @@ -1,71 +0,0 @@ -import svelte from "rollup-plugin-svelte"; -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -//import { terser } from 'rollup-plugin-terser'; -import sveltePreprocess from "svelte-preprocess"; -import postcss from "rollup-plugin-postcss"; -import { string } from "rollup-plugin-string"; -import json from "@rollup/plugin-json"; -import dna from "@perspect3vism/rollup-plugin-dna"; - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: "dna.js", - external: [], - output: { - sourcemap: true, - format: "esm", - name: "PDiffSyncLanguage", - file: "build/dna.js", - interop: "esModule", - globals: {}, - }, - external: [], - plugins: [ - string({ - include: "build/*.js", - }), - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file - better for performance - //css: css => { - // css.write('bundle.css'); - //}, - preprocess: sveltePreprocess(), - }), - // copy({ - // assets: ['package.unbundled.json'] - // }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration - - // consult the documentation for details: - // https://github.com/rollup/plugins/tree/master/packages/commonjs - resolve({ - browser: true, - dedupe: ["svelte"], - }), - commonjs(), - postcss({ - extract: true, - minimize: true, - use: [ - [ - "sass", - { - includePaths: ["./src/ui/theme", "./node_modules"], - }, - ], - ], - }), - json(), - dna(), - ], - watch: { - clearScreen: false, - }, -}; diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/telepresenceAdapter.ts b/bootstrap-languages/p-diff-sync-socket-signaling/telepresenceAdapter.ts deleted file mode 100644 index 9ae096da6..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/telepresenceAdapter.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";; -import { DNA_NICK, ZOME_NAME } from "./build/dna.js"; - -export class TelepresenceAdapterImplementation implements TelepresenceAdapter { - hcDna: HolochainLanguageDelegate; - signalCallbacks: TelepresenceSignalCallback[] = []; - - constructor(context: LanguageContext) { - this.hcDna = context.Holochain as HolochainLanguageDelegate; - } - - async setOnlineStatus(status: PerspectiveExpression): Promise { - await this.hcDna.call(DNA_NICK, ZOME_NAME, "set_online_status", status); - } - - async getOnlineAgents(): Promise { - //@ts-ignore - const getActiveAgents = await this.hcDna.call(DNA_NICK, ZOME_NAME, "get_active_agents", null); - let calls = []; - for (const activeAgent of getActiveAgents) { - calls.push({dnaNick: DNA_NICK, zomeName: ZOME_NAME, fnName: "get_agents_status", params: activeAgent}); - }; - return await this.hcDna.callAsync(calls, 1000) as OnlineAgent[]; - } - - async sendSignal(remoteAgentDid: string, payload: PerspectiveExpression): Promise { - let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "send_signal", {remote_agent_did: remoteAgentDid, payload}); - return res; - } - - async sendBroadcast(payload: PerspectiveExpression): Promise { - let res = await this.hcDna.call(DNA_NICK, ZOME_NAME, "send_broadcast", payload); - return res; - } - - async registerSignalCallback(callback: TelepresenceSignalCallback): Promise { - this.signalCallbacks.push(callback); - } -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync-socket-signaling/tsconfig.json b/bootstrap-languages/p-diff-sync-socket-signaling/tsconfig.json deleted file mode 100644 index 132461b20..000000000 --- a/bootstrap-languages/p-diff-sync-socket-signaling/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@tsconfig/svelte/tsconfig.json", - "compilerOptions": { - "types": ["node"], - }, - "include": ["*.ts"], - "exclude": ["node_modules/*", "__sapper__/*", "public/*"], -} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock index 0a7abad26..335035720 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock +++ b/bootstrap-languages/p-diff-sync/hc-dna/Cargo.lock @@ -41,12 +41,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.4.1" @@ -115,12 +109,11 @@ dependencies = [ [[package]] name = "colored" -version = "2.1.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "lazy_static", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -162,9 +155,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -172,27 +165,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -209,22 +202,34 @@ dependencies = [ ] [[package]] -name = "digest" -version = "0.10.7" +name = "derive_more" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "block-buffer", - "crypto-common", + "derive_more-impl", ] [[package]] -name = "dot-generator" -version = "0.1.0" +name = "derive_more-impl" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322e00783838d540a6288c25ae085983750521fb8cca82fc653eb2457c369565" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "dot-structures", + "proc-macro2", + "quote", + "syn 2.0.101", + "unicode-xid", +] + +[[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]] @@ -238,9 +243,9 @@ dependencies = [ [[package]] name = "dot-structures" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675e35c02a51bb4d4618cb4885b3839ce6d1787c97b664474d9208d074742e20" +checksum = "498cfcded997a93eb31edd639361fa33fd229a8784e953b37d71035fe3890b7b" [[package]] name = "dunce" @@ -262,19 +267,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" @@ -389,22 +394,23 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasip2", ] [[package]] name = "graphviz-rust" -version = "0.2.1" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a478d6485a680dcea01e3deba796c01866d63dabf06a20df4f969aaa1bac3f43" +checksum = "db134cb611668917cabf340af9a39518426f9a10827b4cedcb4cdcf84443f6d0" dependencies = [ - "dot-generator 0.2.0", + "dot-generator", "dot-structures", "into-attr", "into-attr-derive", @@ -422,14 +428,15 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hdi" -version = "0.6.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.7.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdk_derive", "holo_hash", "holochain_integrity_types", "holochain_serialized_bytes", + "holochain_serialized_bytes_derive", "holochain_wasmer_guest", "paste", "serde", @@ -440,8 +447,8 @@ dependencies = [ [[package]] name = "hdk" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "hdi", @@ -451,16 +458,14 @@ dependencies = [ "holochain_zome_types", "paste", "serde", - "serde_bytes", - "thiserror 1.0.50", "tracing", "tracing-core", ] [[package]] name = "hdk_derive" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "darling", "heck", @@ -469,7 +474,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -480,25 +485,27 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "holo_hash" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "base64", "blake2b_simd", - "derive_more", + "derive_more 2.0.1", + "futures", "holochain_serialized_bytes", "holochain_util", "holochain_wasmer_common", + "must_future", "serde", "serde_bytes", "sha2", - "thiserror 1.0.50", + "thiserror 2.0.12", ] [[package]] name = "holochain_integrity_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "holo_hash", "holochain_secure_primitive", @@ -513,8 +520,8 @@ dependencies = [ [[package]] name = "holochain_nonce" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "getrandom", "holochain_secure_primitive", @@ -523,8 +530,8 @@ dependencies = [ [[package]] name = "holochain_secure_primitive" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "paste", "serde", @@ -558,8 +565,8 @@ dependencies = [ [[package]] name = "holochain_timestamp" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "chrono", "serde", @@ -567,8 +574,8 @@ dependencies = [ [[package]] name = "holochain_util" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ "cfg-if", "colored", @@ -604,10 +611,10 @@ dependencies = [ [[package]] name = "holochain_zome_types" -version = "0.5.6" -source = "git+https://github.com/coasys/holochain.git?branch=0.5.6-coasys#864d8ebc8683fde3ca20835015beb810f143c05a" +version = "0.6.0-rc.0" +source = "git+https://github.com/coasys/holochain.git?branch=0.6.0-rc.0-coasys#556a189c3ed008fd15c37863604d2d61f38d05f7" dependencies = [ - "derive_more", + "derive_more 2.0.1", "holo_hash", "holochain_integrity_types", "holochain_nonce", @@ -616,8 +623,10 @@ dependencies = [ "holochain_wasmer_common", "serde", "serde_bytes", + "strum", + "strum_macros", "subtle", - "thiserror 1.0.50", + "thiserror 2.0.12", "tracing", ] @@ -671,11 +680,11 @@ dependencies = [ [[package]] name = "into-attr-derive" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b88c3c684271aa7810934ae69a0b904c59f478cb551f3f388cc1c384f0c3145" +checksum = "ecac7c1ae6cd2c6a3a64d1061a8bdc7f52ff62c26a831a2301e54c1b5d70d5b1" dependencies = [ - "dot-generator 0.1.0", + "dot-generator", "dot-structures", "into-attr", "quote", @@ -699,10 +708,11 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -714,21 +724,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "maplit" @@ -742,6 +746,16 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "must_future" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a160ffed3c2f98d2906c67a9b6e4e1f09cca7e17e3f780286a349061459eeebe" +dependencies = [ + "futures", + "pin-utils", +] + [[package]] name = "num-traits" version = "0.2.17" @@ -753,9 +767,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "paste" @@ -768,13 +782,15 @@ name = "perspective_diff_sync" version = "0.0.1" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.17", "dot-structures", + "getrandom", "graphviz-rust", "hdi", "hdk", "holochain_serialized_bytes", "itertools", + "js-sys", "lazy_static", "maplit", "perspective_diff_sync_integrity", @@ -789,7 +805,7 @@ name = "perspective_diff_sync_integrity" version = "0.0.1" dependencies = [ "chrono", - "derive_more", + "derive_more 0.99.17", "hdi", "hdk", "holo_hash", @@ -912,22 +928,27 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rand" -version = "0.8.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -935,22 +956,13 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "rmp" version = "0.8.14" @@ -984,17 +996,23 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.26" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.4.1", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys", ] +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "ryu" version = "1.0.15" @@ -1079,9 +1097,27 @@ dependencies = [ [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.101", +] [[package]] name = "subtle" @@ -1113,15 +1149,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ - "cfg-if", "fastrand", - "redox_syscall", + "getrandom", + "once_cell", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1214,6 +1250,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "valuable" version = "0.1.0" @@ -1227,41 +1269,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[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.89" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.89" +name = "wasm-bindgen" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ - "bumpalo", - "log", + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.101", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1269,22 +1302,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn 2.0.101", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "windows-core" @@ -1295,15 +1331,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -1426,3 +1453,9 @@ name = "windows_x86_64_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" diff --git a/bootstrap-languages/p-diff-sync/hc-dna/build.sh b/bootstrap-languages/p-diff-sync/hc-dna/build.sh index 7d83be6b0..7a73bd0ca 100755 --- a/bootstrap-languages/p-diff-sync/hc-dna/build.sh +++ b/bootstrap-languages/p-diff-sync/hc-dna/build.sh @@ -1,4 +1,4 @@ #!/bin/bash -CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +CARGO_TARGET_DIR=target RUSTFLAGS='--cfg getrandom_backend="custom"' cargo build --release --target wasm32-unknown-unknown hc dna pack workdir hc app pack workdir \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/workdir/dna.yaml b/bootstrap-languages/p-diff-sync/hc-dna/workdir/dna.yaml index 75dddd236..0d74da666 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/workdir/dna.yaml +++ b/bootstrap-languages/p-diff-sync/hc-dna/workdir/dna.yaml @@ -1,5 +1,5 @@ --- -manifest_version: 1 +manifest_version: 0 name: "perspective-diff-sync" integrity: network_seed: 00000000-0000-0000-0000-000000000000 @@ -11,10 +11,10 @@ integrity: } zomes: - name: perspective_diff_sync_integrity - bundled: ../target/wasm32-unknown-unknown/release/perspective_diff_sync_integrity.wasm + path: ../target/wasm32-unknown-unknown/release/perspective_diff_sync_integrity.wasm coordinator: zomes: - name: perspective_diff_sync - bundled: ../target/wasm32-unknown-unknown/release/perspective_diff_sync.wasm + path: ../target/wasm32-unknown-unknown/release/perspective_diff_sync.wasm dependencies: - name: perspective_diff_sync_integrity \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/workdir/happ.yaml b/bootstrap-languages/p-diff-sync/hc-dna/workdir/happ.yaml index aa7ed32e7..87a0cc88b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/workdir/happ.yaml +++ b/bootstrap-languages/p-diff-sync/hc-dna/workdir/happ.yaml @@ -1,4 +1,4 @@ -manifest_version: '1' +manifest_version: '0' name: Perspective-Diff-Sync description: git-like CRDT for collaborative AD4M Perspectives, i.e. back-bone of fully p2p Neighbourhoods roles: @@ -7,5 +7,5 @@ roles: strategy: create deferred: false dna: - bundled: ./perspective-diff-sync.dna + path: ./perspective-diff-sync.dna \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml index ea3f2e9db..74a09e634 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/Cargo.toml @@ -16,15 +16,21 @@ chrono = { version = "0.4.38", default-features = false, features = ["clock", "s thiserror = "1" petgraph = "0.6.2" maplit = "1.0.2" -graphviz-rust = "0.2.1" +graphviz-rust = "0.9.6" dot-structures = "0.1.0" itertools = "0.10.3" perspective_diff_sync_integrity = { path = "../perspective_diff_sync_integrity" } sha2 = "0.10.5" +#getrandom = { version = "0.2", features = ["js"] } +getrandom = { version = "0.3" } +js-sys = "0.3.82" -hdi = { version = "0.6.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } -hdk = { version = "0.5.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } +hdi = { version = "0.7.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } holochain_serialized_bytes = "=0.0.56" [features] -test = [] \ No newline at end of file +test = [] + +[target.wasm32-unknown-unknown] +rustflags = ['--cfg', 'getrandom_backend="custom"'] \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/lib.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/lib.rs index 865dcba51..699682048 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/lib.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/lib.rs @@ -24,7 +24,7 @@ pub type Hash = HoloHash; #[hdk_extern] fn init(_: ()) -> ExternResult { - let mut functions = BTreeSet::new(); + let mut functions = HashSet::new(); functions.insert((zome_info()?.name, "get_online_status".into())); //TODO; is this next function needed? functions.insert((zome_info()?.name, "recv_remote_signal".into())); diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs index 447f6bb73..a3e75a93b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/snapshots.rs @@ -41,15 +41,12 @@ pub fn generate_snapshot( ))?; if diff.diffs_since_snapshot == 0 && search_position.hash != latest { let now = get_now()?.time(); - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( hash_entry(&diff)?, LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .get_options(GetStrategy::Network) - .build(); - let mut snapshot_links = get_links(input)?; + )? + .tag_prefix(LinkTag::new("snapshot")); + let mut snapshot_links = get_links(query, GetStrategy::Network)?; let after = get_now()?.time(); debug!("===PerspectiveDiffSync.generate_snapshot() - Profiling: Took {} to get the snapshot links", (after - now).num_milliseconds()); if snapshot_links.len() == 0 { diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs index 5af5010d1..4fdc6cc5b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/workspace.rs @@ -663,15 +663,12 @@ impl Workspace { debug!("===Workspace.get_snapshot(): Function start"); let fn_start = get_now()?.time(); - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( hash_entry(address)?, LinkTypes::Snapshot - ) - .unwrap() - .tag_prefix(LinkTag::new("snapshot")) - .get_options(GetStrategy::Network) - .build(); - let mut snapshot_links = get_links(input)?; + )? + .tag_prefix(LinkTag::new("snapshot")); + let mut snapshot_links = get_links(query, GetStrategy::Network)?; if snapshot_links.len() > 0 { let snapshot = get( diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs index 11f788e64..4ca07b7c4 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/retriever/holochain.rs @@ -100,14 +100,11 @@ impl PerspectiveDiffRetreiver for HolochainRetreiver { fn latest_revision() -> SocialContextResult> { let latest_root_entry = get_latest_revision_anchor(); let latest_root_entry_hash = hash_entry(latest_root_entry.clone())?; - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( latest_root_entry_hash, LinkTypes::Index - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut latest_revision_links = get_links(input)?; + )?; + let mut latest_revision_links = get_links(query, GetStrategy::Network)?; latest_revision_links.sort_by(|link_a, link_b| { let link_a_str = std::str::from_utf8(&link_a.tag.0).unwrap(); @@ -170,15 +167,12 @@ pub fn get_active_agent_anchor() -> Anchor { } pub fn get_active_agents() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( hash_entry(get_active_agent_anchor())?, LinkTypes::Index - ) - .unwrap() - .tag_prefix(LinkTag::new("active_agent")) - .get_options(GetStrategy::Network) - .build(); - let recent_agents = get_links(input)?; + )? + .tag_prefix(LinkTag::new("active_agent")); + let recent_agents = get_links(query, GetStrategy::Network)?; let recent_agents = recent_agents .into_iter() diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs index 23fb30298..a7198da75 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/status.rs @@ -65,8 +65,8 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { // TODO: should be agent_latest_pubkey, but that was made unstable behind dpki feature flag let agent_key = agent_info()?.agent_initial_pubkey; debug!("PerspectiveDiffSync.create_did_pub_key_link() agent_key: {:?}", agent_key); - let input = GetLinksInputBuilder::try_new(agent_key.clone(), LinkTypes::DidLink).unwrap().get_options(GetStrategy::Network).build(); - let did_links = get_links(input)?; + let query = LinkQuery::try_new(agent_key.clone(), LinkTypes::DidLink)?; + let did_links = get_links(query, GetStrategy::Network)?; debug!("PerspectiveDiffSync.create_did_pub_key_link() did_links: {:?}", did_links); if did_links.len() == 0 { @@ -90,15 +90,12 @@ pub fn create_did_pub_key_link(did: String) -> SocialContextResult<()> { } pub fn get_my_did() -> SocialContextResult> { - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( // TODO: should be agent_latest_pubkey, but that was made unstable behind dpki feature flag agent_info()?.agent_initial_pubkey, LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut did_links = get_links(input)?; + )?; + let mut did_links = get_links(query, GetStrategy::Network)?; if did_links.len() > 0 { let did = get( did_links @@ -125,14 +122,11 @@ pub fn get_my_did() -> SocialContextResult> { pub fn get_dids_agent_key(did: String) -> SocialContextResult> { let did_entry = Anchor(did); let did_entry_hash = hash_entry(EntryTypes::Anchor(did_entry.clone()))?; - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( did_entry_hash, LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let did_links = get_links(input)?; + )?; + let did_links = get_links(query, GetStrategy::Network)?; debug!("PerspectiveDiffSync.get_dids_agent_key() did_links: {:?}", did_links); if did_links.len() > 0 { let entry: EntryHash = did_links[0].target.clone().try_into().unwrap(); @@ -143,14 +137,11 @@ pub fn get_dids_agent_key(did: String) -> SocialContextResult SocialContextResult> { - let input = GetLinksInputBuilder::try_new( + let query = LinkQuery::try_new( agent, LinkTypes::DidLink - ) - .unwrap() - .get_options(GetStrategy::Network) - .build(); - let mut did_links = get_links(input)?; + )?; + let mut did_links = get_links(query, GetStrategy::Network)?; if did_links.len() > 0 { let did = get( did_links diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml index 9e758ccaa..b0d86f7b7 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync_integrity/Cargo.toml @@ -13,7 +13,7 @@ derive_more = "0" serde = "1" chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "oldtime", "serde"] } -hdi = { version = "0.6.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } -hdk = { version = "0.5.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } +hdi = { version = "0.7.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +hdk = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } holochain_serialized_bytes = "=0.0.56" -holo_hash = { version = "0.5.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } \ No newline at end of file +holo_hash = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } \ No newline at end of file diff --git a/cli/mainnet_seed.json b/cli/mainnet_seed.json index 5d64d7d58..0f9ff6aa7 100644 --- a/cli/mainnet_seed.json +++ b/cli/mainnet_seed.json @@ -4,9 +4,9 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdaPHA3WJKSzVAi3REGhMhos9E3RNtE2Xw1PA5FUvvpvuB" + "QmzSYwdotxzLtyG1qoa5fwotT3DVshJohRDtwgeLHEqb9UfarxV" ], - "directMessageLanguage": "QmzSYwdob1TwkrGs5SzpS6UF2NpNBBzd3XSy2HpmaDnRPivNcE9", + "directMessageLanguage": "QmzSYwdnDoa3atWT3S5HSuA8pnD3qCzdYZRAXLZBtrSGRH6P3r4", "agentLanguage": "QmzSYwdZDdgxiyE8crozqbxoBP52h6ocMdDq2S2mg4ScjzVLWKQ", "perspectiveLanguage": "QmzSYwddxFCzVD63LgR8MTBaUEcwf9jhB3XjLbYBp2q8V1MqVtS", "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", diff --git a/deno.lock b/deno.lock index 218dde33e..c29148a94 100644 --- a/deno.lock +++ b/deno.lock @@ -505,32 +505,6 @@ ] } }, - "bootstrap-languages/p-diff-sync-socket-signaling": { - "packageJson": { - "dependencies": [ - "npm:@coasys/ad4m@*", - "npm:@perspect3vism/rollup-plugin-dna@^0.0.2", - "npm:@rollup/plugin-commonjs@14", - "npm:@rollup/plugin-json@^4.1.0", - "npm:@rollup/plugin-node-resolve@8", - "npm:@rollup/plugin-typescript@4", - "npm:@tsconfig/svelte@1", - "npm:@types/node@18", - "npm:faker@^5.5.3", - "npm:rollup-plugin-postcss@^3.1.8", - "npm:rollup-plugin-string@3", - "npm:rollup-plugin-svelte@6", - "npm:rollup-plugin-terser@7", - "npm:rollup@^2.3.4", - "npm:run-script-os@^1.1.6", - "npm:svelte-check@1", - "npm:svelte-preprocess@4", - "npm:svelte@3", - "npm:tslib@2", - "npm:typescript@^4.5.5" - ] - } - }, "bootstrap-languages/perspective-language": { "packageJson": { "dependencies": [ diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index 7ab052c9f..c6c27b8d6 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -640,25 +640,18 @@ export default class LanguageController { let happYaml = yaml.load(fs.readFileSync(happYamlPath, 'utf8')); //console.log("happ.yaml", happYaml) //@ts-ignore - let dnaBundlePath = path.join(unpackHappPath, happYaml.roles[0].dna.bundled) + let dnaBundlePath = path.join(unpackHappPath, happYaml.roles[0].dna.path) console.log("LanguageController.readAndTemplateHolochainDNA: unpacking DNA"); let unpackDnaPath = (await this.#holochainService?.unPackDna(dnaBundlePath)).replace(/(\r\n|\n|\r)/gm, ""); //console.log("unpackDnaPath:", unpackDnaPath) const dnaYamlPath = path.join(unpackDnaPath, "dna.yaml"); - const wasmPath = path.join(unpackHappPath, "target/wasm32-unknown-unknown/release/") if (!fs.existsSync(dnaYamlPath)) { throw new Error("Expected to find DNA of source language at path: " + dnaYamlPath + " after unpacking but could not find at given path"); } - //Read for files inside wasm path after unpack since we should now have .wasm file there but we do not know which name it may have - const wasmName = fs.readdirSync(wasmPath); - if (wasmName.length == 0) { - throw new Error("Got incorrect number of files inside wasm path when unpacking DNA"); - } - //Read the yaml file let dnaYaml = yaml.load(fs.readFileSync(dnaYamlPath, 'utf8')); //console.log("dnaYaml before changes:", dnaYaml) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ed3c21b4..9754e5da2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -577,69 +577,6 @@ importers: specifier: ^1.1.6 version: 1.1.6 - bootstrap-languages/p-diff-sync-socket-signaling: - dependencies: - '@coasys/ad4m': - specifier: '*' - version: 0.8.1(graphql-ws@5.14.3(graphql@15.7.2(patch_hash=nr4gprddtjag7fz5nm4wirqs4q)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@perspect3vism/rollup-plugin-dna': - specifier: ^0.0.2 - version: 0.0.2 - '@rollup/plugin-commonjs': - specifier: ^14.0.0 - version: 14.0.0(rollup@2.79.1) - '@rollup/plugin-json': - specifier: ^4.1.0 - version: 4.1.0(rollup@2.79.1) - '@rollup/plugin-node-resolve': - specifier: ^8.0.0 - version: 8.4.0(rollup@2.79.1) - '@rollup/plugin-typescript': - specifier: ^4.0.0 - version: 4.1.2(rollup@2.79.1)(tslib@2.6.2)(typescript@4.9.5) - '@tsconfig/svelte': - specifier: ^1.0.0 - version: 1.0.13 - '@types/node': - specifier: ^18.0.0 - version: 18.11.10 - faker: - specifier: ^5.5.3 - version: 5.5.3 - rollup: - specifier: ^2.3.4 - version: 2.79.1 - rollup-plugin-postcss: - specifier: ^3.1.8 - version: 3.1.8 - rollup-plugin-string: - specifier: ^3.0.0 - version: 3.0.0 - rollup-plugin-svelte: - specifier: ^6.0.0 - version: 6.1.1(rollup@2.79.1)(svelte@3.59.2) - rollup-plugin-terser: - specifier: ^7.0.0 - version: 7.0.2(rollup@2.79.1) - svelte: - specifier: ^3.0.0 - version: 3.59.2 - svelte-check: - specifier: ^1.0.0 - version: 1.6.0(@babel/core@7.24.3)(postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.1(@types/node@18.11.10)(typescript@4.9.5)))(postcss@8.4.33)(sass@1.70.0)(svelte@3.59.2) - svelte-preprocess: - specifier: ^4.0.0 - version: 4.10.7(@babel/core@7.24.3)(postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.1(@types/node@18.11.10)(typescript@4.9.5)))(postcss@8.4.33)(sass@1.70.0)(svelte@3.59.2)(typescript@4.9.5) - tslib: - specifier: ^2.0.0 - version: 2.6.2 - typescript: - specifier: ^4.5.5 - version: 4.9.5 - devDependencies: - run-script-os: - specifier: ^1.1.6 - version: 1.1.6 bootstrap-languages/perspective-language: devDependencies: diff --git a/rust-executor/Cargo.toml b/rust-executor/Cargo.toml index 7b5216bcb..c5a2ea1f0 100644 --- a/rust-executor/Cargo.toml +++ b/rust-executor/Cargo.toml @@ -95,13 +95,13 @@ webbrowser = "0.8.12" holochain_cli_run_local_services = { version = "0.5.0-dev.12" } kitsune_p2p_types = { version = "0.5.0-dev.9" } kitsune2_api = "0.1.15" -holochain = { version = "0.5.6", features = ["test_utils", "default", "backend-go-pion"], git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } -holochain_cli_bundle = { version = "0.5.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } -holochain_types = { version = "0.5.6", git = "https://github.com/coasys/holochain.git", branch = "0.5.6-coasys" } -lair_keystore_api = { version = "0.6.1", git = "https://github.com/coasys/lair.git", branch = "0.6.1-coasys" } +holochain = { version = "0.6.0-rc.0", features = ["test_utils", "default", "backend-go-pion"], git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_cli_bundle = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +holochain_types = { version = "0.6.0-rc.0", git = "https://github.com/coasys/holochain.git", branch = "0.6.0-rc.0-coasys" } +lair_keystore_api = { version = "0.6.3", git = "https://github.com/coasys/lair.git", branch = "0.6.3-coasys" } sodoken = "=0.1.0" -scryer-prolog = { version = "0.9.4", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m-hc-0.5" } +scryer-prolog = { version = "0.10", git = "https://github.com/coasys/scryer-prolog", branch = "ad4m" } # scryer-prolog = { path = "../../scryer-prolog", features = ["multi_thread"] } ad4m-client = { path = "../rust-client", version="0.10.1-dev" } diff --git a/rust-executor/src/holochain_service/mod.rs b/rust-executor/src/holochain_service/mod.rs index 800931c18..c7a42b60b 100644 --- a/rust-executor/src/holochain_service/mod.rs +++ b/rust-executor/src/holochain_service/mod.rs @@ -103,7 +103,7 @@ impl HolochainService { let spawned_sig = tokio::spawn(async move { let mut streams: tokio_stream::StreamMap> = tokio_stream::StreamMap::new(); - conductor_clone.list_apps(Some(AppStatusFilter::Running)).await.unwrap().into_iter().for_each(|app| { + conductor_clone.list_apps(Some(AppStatusFilter::Enabled)).await.unwrap().into_iter().for_each(|app| { let sig_broadcasters = conductor_clone.subscribe_to_app_signals(app.installed_app_id.clone()); streams.insert(app.installed_app_id.clone(), tokio_stream::wrappers::BroadcastStream::new(sig_broadcasters)); }); @@ -471,6 +471,7 @@ impl HolochainService { .clone() .add_app_interface( Either::Left(local_config.app_port), + None, AllowedOrigins::Any, None, ) @@ -715,14 +716,14 @@ impl HolochainService { let path = PathBuf::from(path); let name = holochain_cli_bundle::get_app_name(&path).await?; info!("Got hApp name: {:?}", name); - let pack = holochain_cli_bundle::pack::(&path, None, name, false).await?; - info!("Packed hApp at path: {:#?}", pack.0); - Ok(pack.0.to_str().unwrap().to_string()) + let pack = holochain_cli_bundle::pack::(&path, None, name).await?; + info!("Packed hApp at path: {:#?}", pack); + Ok(pack.to_str().unwrap().to_string()) } pub async fn unpack_happ(path: String) -> Result { let path = PathBuf::from(path); - let pack = holochain_cli_bundle::unpack::("happ", &path, None, true).await?; + let pack = holochain_cli_bundle::expand_bundle::(&path, None, true).await?; info!("UnPacked hApp at path: {:#?}", pack); Ok(pack.to_str().unwrap().to_string()) } @@ -731,16 +732,15 @@ impl HolochainService { let path = PathBuf::from(path); let name = holochain_cli_bundle::get_dna_name(&path).await?; info!("Got dna name: {:?}", name); - let pack = - holochain_cli_bundle::pack::(&path, None, name, false).await?; - info!("Packed dna at path: {:#?}", pack.0); - Ok(pack.0.to_str().unwrap().to_string()) + let pack = holochain_cli_bundle::pack::(&path, None, name).await?; + info!("Packed dna at path: {:#?}", pack); + Ok(pack.to_str().unwrap().to_string()) } pub async fn unpack_dna(path: String) -> Result { let path = PathBuf::from(path); let pack = - holochain_cli_bundle::unpack::("dna", &path, None, true).await?; + holochain_cli_bundle::expand_bundle::(&path, None, true).await?; info!("UnPacked dna at path: {:#?}", pack); Ok(pack.to_str().unwrap().to_string()) } diff --git a/rust-executor/src/mainnet_seed.json b/rust-executor/src/mainnet_seed.json index 5d64d7d58..0f9ff6aa7 100644 --- a/rust-executor/src/mainnet_seed.json +++ b/rust-executor/src/mainnet_seed.json @@ -4,9 +4,9 @@ "did:key:z6MkvPpWxwXAnLtMcoc9sX7GEoJ96oNnQ3VcQJRLspNJfpE7" ], "knownLinkLanguages": [ - "QmzSYwdaPHA3WJKSzVAi3REGhMhos9E3RNtE2Xw1PA5FUvvpvuB" + "QmzSYwdotxzLtyG1qoa5fwotT3DVshJohRDtwgeLHEqb9UfarxV" ], - "directMessageLanguage": "QmzSYwdob1TwkrGs5SzpS6UF2NpNBBzd3XSy2HpmaDnRPivNcE9", + "directMessageLanguage": "QmzSYwdnDoa3atWT3S5HSuA8pnD3qCzdYZRAXLZBtrSGRH6P3r4", "agentLanguage": "QmzSYwdZDdgxiyE8crozqbxoBP52h6ocMdDq2S2mg4ScjzVLWKQ", "perspectiveLanguage": "QmzSYwddxFCzVD63LgR8MTBaUEcwf9jhB3XjLbYBp2q8V1MqVtS", "neighbourhoodLanguage": "QmzSYwdo2a6E4XghRHrN5eCReyYRDeRE8VnRbvqgoWZsr9B4pxV", diff --git a/rust-executor/src/perspectives/sdna.rs b/rust-executor/src/perspectives/sdna.rs index 08c945207..8710e10c2 100644 --- a/rust-executor/src/perspectives/sdna.rs +++ b/rust-executor/src/perspectives/sdna.rs @@ -110,6 +110,169 @@ pub fn is_sdna_link(link: &Link) -> bool { .contains(&link.predicate.as_deref().unwrap_or("")) } +/// Returns the JSON parser Prolog code as a string +/// This is used both in production (get_static_infrastructure_facts) and in tests +pub fn get_json_parser_code() -> &'static str { + r#" + % Main predicate to parse JSON and extract a property + % Use list-based dict instead of assoc to support nested JSON objects + json_property(JsonString, Property, Value) :- + phrase(json_dict(Dict), JsonString), + member(Property-Value, Dict). + + % DCG rules to parse JSON + % Empty dict clause - must come before non-empty variant + json_dict([]) --> + ws, "{", ws, "}", ws. + json_dict(Dict) --> + ws, "{", ws, key_value_pairs(Pairs), ws, "}", ws, + { Dict = Pairs }. + + key_value_pairs([Key-Value|Pairs]) --> + ws, json_string(Key), ws, ":", ws, json_value(Value), ws, ",", !, + key_value_pairs(Pairs). + key_value_pairs([Key-Value]) --> + ws, json_string(Key), ws, ":", ws, json_value(Value), ws. + + json_value(Value) --> json_dict(Value). + json_value(Value) --> json_array(Value). + json_value(Value) --> json_string(Value). + json_value(Value) --> json_number(Value). + json_value(true) --> "true". + json_value(false) --> "false". + json_value(null) --> "null". + + % Empty array clause - must come before non-empty variant + json_array([]) --> + "[", ws, "]". + json_array([Value|Values]) --> + "[", ws, json_value(Value), ws, ",", !, ws, + json_value_list(Values), ws, "]". + json_array([Value]) --> + "[", ws, json_value(Value), ws, "]". + + json_value_list([Value|Values]) --> + json_value(Value), ws, ",", !, ws, + json_value_list(Values). + json_value_list([Value]) --> + json_value(Value), ws. + + json_string(String) --> + "\"", json_string_chars(String), "\"". + + json_string_chars([]) --> []. + json_string_chars([C|Cs]) --> json_string_char(C), json_string_chars(Cs). + + json_string_char(C) --> [C], { dif(C, '"'), dif(C, '\\') }. + json_string_char('"') --> ['\\', '"']. + json_string_char('\\') --> ['\\', '\\']. + json_string_char('/') --> ['\\', '/']. + json_string_char('\b') --> ['\\', 'b']. + json_string_char('\f') --> ['\\', 'f']. + json_string_char('\n') --> ['\\', 'n']. + json_string_char('\r') --> ['\\', 'r']. + json_string_char('\t') --> ['\\', 't']. + + json_number(Number) --> + number_sequence(Chars), + { number_chars(Number, Chars) }. + + string_chars([]) --> []. + string_chars([C|Cs]) --> [C], { dif(C, '"') }, string_chars(Cs). + + % Simplified number_sequence to handle both integer and fractional parts + number_sequence([D|Ds]) --> digit(D), number_sequence_rest(Ds). + number_sequence_rest([D|Ds]) --> digit(D), number_sequence_rest(Ds). + number_sequence_rest([]) --> []. + + digit(D) --> [D], { member(D, "0123456789.") }. + + ws --> ws_char, ws. + ws --> []. + + ws_char --> [C], { C = ' ' ; C = '\t' ; C = '\n' ; C = '\r' }. + + % Convert Prolog values back to JSON strings + % This is needed to convert nested dict structures back to proper JSON for JavaScript + + % Helper to check if something is a list (empty or non-empty) + check_is_list([]). + check_is_list([_|_]). + + % Check if a value is a dict (list of Key-Value pairs) + is_dict([]). + is_dict([K-_V|Rest]) :- check_is_list(K), is_dict(Rest). + + % Check if a value looks like a regular list (not a dict) + is_regular_list([]). + is_regular_list([H|T]) :- \+ is_pair(H), is_regular_list(T). + + is_pair(_-_). + + % Main conversion predicate + prolog_value_to_json(Value, JsonChars) :- + is_dict(Value), + !, + dict_to_json(Value, JsonChars). + prolog_value_to_json(Value, JsonChars) :- + is_regular_list(Value), + !, + list_to_json(Value, JsonChars). + prolog_value_to_json(Value, JsonChars) :- + check_is_list(Value), + !, + % It's a character list (string) + append("\"", Value, Temp), + append(Temp, "\"", JsonChars). + prolog_value_to_json(true, "true") :- !. + prolog_value_to_json(false, "false") :- !. + prolog_value_to_json(null, "null") :- !. + prolog_value_to_json(Value, JsonChars) :- + number(Value), + !, + number_chars(Value, JsonChars). + prolog_value_to_json(Value, Value). + + % Convert dict (list of pairs) to JSON object + dict_to_json([], "{}") :- !. + dict_to_json(Pairs, JsonChars) :- + dict_pairs_to_json(Pairs, PairsJson), + append("{", PairsJson, Temp), + append(Temp, "}", JsonChars). + + dict_pairs_to_json([Key-Value], JsonChars) :- + !, + prolog_value_to_json(Value, ValueJson), + append("\"", Key, Temp1), + append(Temp1, "\":", Temp2), + append(Temp2, ValueJson, JsonChars). + dict_pairs_to_json([Key-Value|Rest], JsonChars) :- + prolog_value_to_json(Value, ValueJson), + dict_pairs_to_json(Rest, RestJson), + append("\"", Key, Temp1), + append(Temp1, "\":", Temp2), + append(Temp2, ValueJson, Temp3), + append(Temp3, ",", Temp4), + append(Temp4, RestJson, JsonChars). + + % Convert list to JSON array + list_to_json([], "[]") :- !. + list_to_json(Items, JsonChars) :- + list_items_to_json(Items, ItemsJson), + append("[", ItemsJson, Temp), + append(Temp, "]", JsonChars). + + list_items_to_json([Item], JsonChars) :- + !, + prolog_value_to_json(Item, JsonChars). + list_items_to_json([Item|Rest], JsonChars) :- + prolog_value_to_json(Item, ItemJson), + list_items_to_json(Rest, RestJson), + append(ItemJson, ",", Temp), + append(Temp, RestJson, JsonChars). + "# +} + /// Get static infrastructure facts that are the same for all engines /// This includes setup directives, library imports, and built-in predicates pub fn get_static_infrastructure_facts() -> Vec { @@ -407,69 +570,7 @@ hex_digit_value('f', 15). .map(|s| s.to_string()), ); - let json_parser = r#" - % Main predicate to parse JSON and extract a property - json_property(JsonString, Property, Value) :- - phrase(json_dict(Dict), JsonString), - get_assoc(Property, Dict, Value). - - % DCG rules to parse JSON - json_dict(Dict) --> - ws, "{", ws, key_value_pairs(Pairs), ws, "}", ws, - { list_to_assoc(Pairs, Dict) }. - - key_value_pairs([Key-Value|Pairs]) --> - ws, json_string(Key), ws, ":", ws, json_value(Value), ws, ("," -> key_value_pairs(Pairs) ; {Pairs=[]}). - - json_value(Value) --> json_dict(Value). - json_value(Value) --> json_array(Value). - json_value(Value) --> json_string(Value). - json_value(Value) --> json_number(Value). - json_value(true) --> "true". - json_value(false) --> "false". - json_value(null) --> "null". - - json_array([Value|Values]) --> - "[", ws, json_value(Value), ws, ("," -> json_value_list(Values) ; {Values=[]}), ws, "]". - json_value_list([Value|Values]) --> json_value(Value), ws, ("," -> json_value_list(Values) ; {Values=[]}). - - json_string(String) --> - "\"", json_string_chars(String), "\"". - - json_string_chars([]) --> []. - json_string_chars([C|Cs]) --> json_string_char(C), json_string_chars(Cs). - - json_string_char(C) --> [C], { dif(C, '"'), dif(C, '\\') }. - json_string_char('"') --> ['\\', '"']. - json_string_char('\\') --> ['\\', '\\']. - json_string_char('/') --> ['\\', '/']. - json_string_char('\b') --> ['\\', 'b']. - json_string_char('\f') --> ['\\', 'f']. - json_string_char('\n') --> ['\\', 'n']. - json_string_char('\r') --> ['\\', 'r']. - json_string_char('\t') --> ['\\', 't']. - - json_number(Number) --> - number_sequence(Chars), - { number_chars(Number, Chars) }. - - string_chars([]) --> []. - string_chars([C|Cs]) --> [C], { dif(C, '"') }, string_chars(Cs). - - % Simplified number_sequence to handle both integer and fractional parts - number_sequence([D|Ds]) --> digit(D), number_sequence_rest(Ds). - number_sequence_rest([D|Ds]) --> digit(D), number_sequence_rest(Ds). - number_sequence_rest([]) --> []. - - digit(D) --> [D], { member(D, "0123456789.") }. - - ws --> ws_char, ws. - ws --> []. - - ws_char --> [C], { C = ' ' ; C = '\t' ; C = '\n' ; C = '\r' }. - "#; - - lines.extend(json_parser.split('\n').map(|s| s.to_string())); + lines.extend(get_json_parser_code().split('\n').map(|s| s.to_string())); let resolve_property = r#" % Retrieve a property from a subject class @@ -480,35 +581,48 @@ hex_digit_value('f', 15). % If it is false, then the property value is a literal and we did resolve it here % If it is true, then the property value is a URI and it still needs to be resolved resolve_property(SubjectClass, Base, PropertyName, PropertyValue, Resolve) :- - % Get the property name and resolve boolean property(SubjectClass, PropertyName), property_getter(SubjectClass, Base, PropertyName, PropertyUri), - ( property_resolve(SubjectClass, PropertyName) - % If the property is resolvable, try to resolve it - -> ( - append("literal://", _, PropertyUri) - % If the property is a literal, we can resolve it here - -> ( - % so tell JS to not resolve it - Resolve = false, - literal_from_url(PropertyUri, LiteralValue, Scheme), - ( - json_property(LiteralValue, "data", Data) - % If it is a JSON literal, and it has a 'data' field, use that - -> PropertyValue = Data - % Otherwise, just use the literal value - ; PropertyValue = LiteralValue - ) - ) - ; - % else (it should be resolved but is not a literal), - % pass through URI to JS and tell JS to resolve it - (Resolve = true, PropertyValue = PropertyUri) - ) - ; - % else (no property resolve), just return the URI as the value - (Resolve = false, PropertyValue = PropertyUri) - )."#; + resolve_property_value(SubjectClass, PropertyName, PropertyUri, PropertyValue, Resolve). + + % Helper to convert PropertyUri to character list whether it's an atom or already a list + resolve_property_ensure_chars(Input, Chars) :- + atom(Input), + !, + atom_chars(Input, Chars). + resolve_property_ensure_chars(Input, Input). + + % Case 1: Property is resolvable AND it's a literal URL - resolve it here + resolve_property_value(SubjectClass, PropertyName, PropertyUri, PropertyValue, false) :- + property_resolve(SubjectClass, PropertyName), + resolve_property_ensure_chars(PropertyUri, PropertyUriChars), + append("literal://", _, PropertyUriChars), + !, + literal_from_url(PropertyUriChars, LiteralValue, _Scheme), + resolve_property_extract_json_or_value(LiteralValue, PropertyValue). + + % Case 2: Property is resolvable but NOT a literal URL - pass through for JS resolution + resolve_property_value(SubjectClass, PropertyName, PropertyUri, PropertyUri, true) :- + property_resolve(SubjectClass, PropertyName), + !. + + % Case 3: Property is NOT resolvable - return the URI as-is + resolve_property_value(_SubjectClass, _PropertyName, PropertyUri, PropertyUri, false). + + % Helper to extract JSON data field or return value as-is + % If the extracted data is a complex object (dict or array), convert it back to JSON + resolve_property_extract_json_or_value(Value, JsonData) :- + catch(json_property(Value, "data", Data), _, fail), + !, + resolve_property_convert_if_complex(Data, JsonData). + resolve_property_extract_json_or_value(Value, Value). + + % Convert complex objects (dicts) to a format Rust understands as objects + % Wrap dict in dict/1 compound so Rust knows to convert it to JSON object + resolve_property_convert_if_complex(Data, dict(Data)) :- + is_dict(Data), + !. + resolve_property_convert_if_complex(Data, Data)."#; lines.extend(resolve_property.split('\n').map(|s| s.to_string())); @@ -641,3 +755,215 @@ pub async fn init_engine_facts( Ok(lines) } + +#[cfg(test)] +mod tests { + use super::*; + use crate::prolog_service::engine::PrologEngine; + use crate::prolog_service::types::QueryResolution; + + // Helper function for tests to get JSON parser code with required libraries + // Returns a Vec just like production code does + fn get_json_parser_for_test() -> Vec { + let mut lines = vec![]; + lines.push(":- use_module(library(lists)).".to_string()); + lines.push(":- use_module(library(dcgs)).".to_string()); + lines.push(":- use_module(library(dif)).".to_string()); + lines.extend(get_json_parser_code().split('\n').map(|s| s.to_string())); + lines + } + + #[tokio::test] + async fn test_simple_dcg() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + // Load a simple DCG rule to test if DCGs work at all + let simple_dcg = r#" + :- use_module(library(dcgs)). + + simple --> "hello". + "# + .to_string(); + + let load_result = engine.load_module_string("user", &[simple_dcg]).await; + assert!( + load_result.is_ok(), + "Failed to load simple DCG: {:?}", + load_result + ); + + // Test the simple DCG + let query = r#"phrase(simple, "hello")."#.to_string(); + println!("Testing simple DCG: {}", query); + let result = engine.run_query(query).await; + println!("Simple DCG result: {:?}", result); + } + + #[tokio::test] + async fn test_simple_empty_dict_dcg() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + // Load the production JSON parser code + let json_parser = get_json_parser_for_test(); + let load_result = engine.load_module_string("user", &json_parser).await; + if let Err(e) = &load_result { + println!("Load error: {:?}", e); + } + assert!( + load_result.is_ok(), + "Failed to load JSON parser: {:?}", + load_result + ); + + // Test the empty dict DCG + let query = r#"phrase(json_dict(Dict), "{}")."#.to_string(); + println!("Testing empty dict DCG: {}", query); + let result = engine.run_query(query).await; + println!("Empty dict DCG result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Empty dict DCG succeeded!"); + } + _ => { + panic!("Empty dict DCG failed: {:?}", result); + } + } + } + + #[tokio::test] + async fn test_empty_json_object_parsing() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + // Load the production JSON parser code with required libraries + let json_parser = get_json_parser_for_test(); + let load_result = engine.load_module_string("user", &json_parser).await; + assert!( + load_result.is_ok(), + "Failed to load JSON parser: {:?}", + load_result + ); + + // Test empty JSON object "{}" + let query = r#"phrase(json_dict(Dict), "{}")."#.to_string(); + println!("Testing empty JSON object: {}", query); + let result = engine.run_query(query).await; + println!("Empty object result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Empty JSON object parsing succeeded"); + } + _ => { + panic!("Empty JSON object parsing failed: {:?}", result); + } + } + + // Test empty JSON object with whitespace "{ }" + let query = r#"phrase(json_dict(Dict), "{ }")."#.to_string(); + println!("Testing empty JSON object with whitespace: {}", query); + let result = engine.run_query(query).await; + println!("Empty object with whitespace result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Empty JSON object with whitespace parsing succeeded"); + } + _ => { + panic!( + "Empty JSON object with whitespace parsing failed: {:?}", + result + ); + } + } + } + + #[tokio::test] + async fn test_empty_json_array_parsing() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + // Load the production JSON parser code with required libraries + let json_parser = get_json_parser_for_test(); + let load_result = engine.load_module_string("user", &json_parser).await; + assert!( + load_result.is_ok(), + "Failed to load JSON parser: {:?}", + load_result + ); + + // Test empty JSON array "[]" + let query = r#"phrase(json_array(Array), "[]")."#.to_string(); + println!("Testing empty JSON array: {}", query); + let result = engine.run_query(query).await; + println!("Empty array result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Empty JSON array parsing succeeded"); + } + _ => { + panic!("Empty JSON array parsing failed: {:?}", result); + } + } + + // Test empty JSON array with whitespace "[ ]" + let query = r#"phrase(json_array(Array), "[ ]")."#.to_string(); + println!("Testing empty JSON array with whitespace: {}", query); + let result = engine.run_query(query).await; + println!("Empty array with whitespace result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Empty JSON array with whitespace parsing succeeded"); + } + _ => { + panic!( + "Empty JSON array with whitespace parsing failed: {:?}", + result + ); + } + } + } + + #[tokio::test] + async fn test_non_empty_json_parsing() { + let mut engine = PrologEngine::new(); + assert!(engine.spawn().await.is_ok()); + + // Load the production JSON parser code with required libraries + let json_parser = get_json_parser_for_test(); + let load_result = engine.load_module_string("user", &json_parser).await; + assert!( + load_result.is_ok(), + "Failed to load JSON parser: {:?}", + load_result + ); + + // Test non-empty JSON object + let query = r#"phrase(json_dict(Dict), "{\"key\": \"value\"}")."#.to_string(); + println!("Testing non-empty JSON object: {}", query); + let result = engine.run_query(query).await; + println!("Non-empty object result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Non-empty JSON object parsing succeeded"); + } + _ => { + panic!("Non-empty JSON object parsing failed: {:?}", result); + } + } + + // Test non-empty JSON array + let query = r#"phrase(json_array(Array), "[1, 2, 3]")."#.to_string(); + println!("Testing non-empty JSON array: {}", query); + let result = engine.run_query(query).await; + println!("Non-empty array result: {:?}", result); + match result { + Ok(Ok(QueryResolution::True)) | Ok(Ok(QueryResolution::Matches(_))) => { + println!("✅ Non-empty JSON array parsing succeeded"); + } + _ => { + panic!("Non-empty JSON array parsing failed: {:?}", result); + } + } + } +} diff --git a/rust-executor/src/perspectives/utils.rs b/rust-executor/src/perspectives/utils.rs index 3d07b788b..f89e61e9a 100644 --- a/rust-executor/src/perspectives/utils.rs +++ b/rust-executor/src/perspectives/utils.rs @@ -33,6 +33,33 @@ fn sanitize_into_json(s: String) -> String { } } +fn convert_dict_to_json(args: &[Term]) -> String { + // args should be [PairsList] where PairsList is a list of Key-Value pairs + if args.len() != 1 { + return "{}".to_string(); + } + + let mut map = JsonMap::new(); + + if let Term::List(pairs) = &args[0] { + for pair in pairs { + if let Term::Compound(functor, pair_args) = pair { + if functor == "-" && pair_args.len() == 2 { + // Extract key and value from Key-Value pair + if let Some(key) = get_string(&pair_args[0]) { + let v_json = prolog_value_to_json_string(pair_args[1].clone()); + let v_value: JsonValue = + serde_json::from_str(&v_json).unwrap_or(JsonValue::Null); + map.insert(key, v_value); + } + } + } + } + } + + JsonValue::Object(map).to_string() +} + fn convert_assoc_to_json(_functor: &str, args: &[Term]) -> String { let mut pairs = Vec::new(); collect_assoc_pairs(args, &mut pairs); @@ -152,6 +179,11 @@ pub fn prolog_value_to_json_string(value: Term) -> String { // where separators are "<", "-", or "t" atoms if s.as_str() == "t" { return parse_t_compound_to_json(&l); + } else if s.as_str() == "dict" { + // Handle dict(Pairs) where Pairs is a list of Key-Value pairs + // Pattern: dict([Key1-Value1, Key2-Value2, ...]) + // Convert to JSON object: {Key1: Value1, Key2: Value2, ...} + return convert_dict_to_json(&l); } else if s.as_str() == "-" { // Handle Prolog assoc dictionary structures // Pattern: -(Key, Value, Left, Right) where Left and Right are subtrees @@ -739,4 +771,325 @@ mod tests { .unwrap() .contains("did:key:")); } + + // Tests for dict(...) conversion functionality + + #[test] + fn test_dict_simple() { + // Simple dict: dict([key1-value1, key2-value2]) + let pair1 = Term::Compound( + "-".to_string(), + vec![ + Term::String("name".to_string()), + Term::String("Alice".to_string()), + ], + ); + let pair2 = Term::Compound( + "-".to_string(), + vec![Term::String("age".to_string()), Term::Integer(30.into())], + ); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![pair1, pair2])]); + + let result = prolog_value_to_json_string(dict_term); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + assert_eq!(parsed["name"], "Alice"); + assert_eq!(parsed["age"], 30); + assert_eq!(parsed.as_object().unwrap().len(), 2); + } + + #[test] + fn test_dict_nested_values() { + // Nested dict: dict([outer-dict([inner-value])]) + let inner_pair = Term::Compound( + "-".to_string(), + vec![ + Term::String("inner_key".to_string()), + Term::String("inner_value".to_string()), + ], + ); + + let inner_dict = Term::Compound("dict".to_string(), vec![Term::List(vec![inner_pair])]); + + let outer_pair = Term::Compound( + "-".to_string(), + vec![Term::String("outer".to_string()), inner_dict], + ); + + let outer_dict = Term::Compound("dict".to_string(), vec![Term::List(vec![outer_pair])]); + + let result = prolog_value_to_json_string(outer_dict); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + assert_eq!(parsed["outer"]["inner_key"], "inner_value"); + } + + #[test] + fn test_dict_nested_multiple_levels() { + // More complex nesting: dict([level1-dict([level2-dict([level3-"deep"])])]) + let level3_pair = Term::Compound( + "-".to_string(), + vec![ + Term::String("level3".to_string()), + Term::String("deep".to_string()), + ], + ); + + let level2_dict = Term::Compound("dict".to_string(), vec![Term::List(vec![level3_pair])]); + + let level2_pair = Term::Compound( + "-".to_string(), + vec![Term::String("level2".to_string()), level2_dict], + ); + + let level1_dict = Term::Compound("dict".to_string(), vec![Term::List(vec![level2_pair])]); + + let level1_pair = Term::Compound( + "-".to_string(), + vec![Term::String("level1".to_string()), level1_dict], + ); + + let root_dict = Term::Compound("dict".to_string(), vec![Term::List(vec![level1_pair])]); + + let result = prolog_value_to_json_string(root_dict); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + assert_eq!(parsed["level1"]["level2"]["level3"], "deep"); + } + + #[test] + fn test_dict_empty() { + // Empty dict: dict([]) + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![])]); + + let result = prolog_value_to_json_string(dict_term); + assert_eq!(result, "{}"); + + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + assert!(parsed.is_object()); + assert_eq!(parsed.as_object().unwrap().len(), 0); + } + + #[test] + fn test_dict_invalid_structure_no_list() { + // Invalid: dict(invalid_structure) - not a list + let dict_term = Term::Compound( + "dict".to_string(), + vec![Term::String("not_a_list".to_string())], + ); + + let result = prolog_value_to_json_string(dict_term); + // Should fallback to empty object + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_structure_too_many_args() { + // Invalid: dict(arg1, arg2) - too many arguments + let dict_term = Term::Compound( + "dict".to_string(), + vec![Term::List(vec![]), Term::String("extra_arg".to_string())], + ); + + let result = prolog_value_to_json_string(dict_term); + // Should fallback to empty object + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_structure_no_args() { + // Invalid: dict() - no arguments + let dict_term = Term::Compound("dict".to_string(), vec![]); + + let result = prolog_value_to_json_string(dict_term); + // Should fallback to empty object + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_pair_not_compound() { + // Invalid pair: dict([not_a_pair]) - element is not a compound + let dict_term = Term::Compound( + "dict".to_string(), + vec![Term::List(vec![Term::String("not_a_pair".to_string())])], + ); + + let result = prolog_value_to_json_string(dict_term); + // Should return empty object since no valid pairs + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_pair_wrong_functor() { + // Invalid pair: dict([wrong_functor(a, b)]) - functor is not "-" + let invalid_pair = Term::Compound( + "wrong".to_string(), + vec![ + Term::String("key".to_string()), + Term::String("value".to_string()), + ], + ); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![invalid_pair])]); + + let result = prolog_value_to_json_string(dict_term); + // Should return empty object since no valid pairs + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_pair_wrong_arity() { + // Invalid pair: dict([-(key)]) - pair doesn't have 2 args + let invalid_pair = Term::Compound("-".to_string(), vec![Term::String("key".to_string())]); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![invalid_pair])]); + + let result = prolog_value_to_json_string(dict_term); + // Should return empty object since no valid pairs + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_invalid_key_type() { + // Invalid key: dict([123-value]) - key is not a string/atom + let invalid_pair = Term::Compound( + "-".to_string(), + vec![Term::Integer(123.into()), Term::String("value".to_string())], + ); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![invalid_pair])]); + + let result = prolog_value_to_json_string(dict_term); + // Should return empty object since key extraction fails + assert_eq!(result, "{}"); + } + + #[test] + fn test_dict_duplicate_keys_last_wins() { + // Duplicate keys: dict([key-"first", key-"second"]) - last value should win + let pair1 = Term::Compound( + "-".to_string(), + vec![ + Term::String("key".to_string()), + Term::String("first".to_string()), + ], + ); + let pair2 = Term::Compound( + "-".to_string(), + vec![ + Term::String("key".to_string()), + Term::String("second".to_string()), + ], + ); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![pair1, pair2])]); + + let result = prolog_value_to_json_string(dict_term); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + // Last value should win + assert_eq!(parsed["key"], "second"); + assert_eq!(parsed.as_object().unwrap().len(), 1); + } + + #[test] + fn test_dict_mixed_value_types() { + // Dict with various value types + let pair1 = Term::Compound( + "-".to_string(), + vec![ + Term::String("string".to_string()), + Term::String("value".to_string()), + ], + ); + let pair2 = Term::Compound( + "-".to_string(), + vec![ + Term::String("integer".to_string()), + Term::Integer(42.into()), + ], + ); + let pair3 = Term::Compound( + "-".to_string(), + vec![Term::String("float".to_string()), Term::Float(3.14)], + ); + let pair4 = Term::Compound( + "-".to_string(), + vec![ + Term::String("boolean".to_string()), + Term::Atom("true".to_string()), + ], + ); + let pair5 = Term::Compound( + "-".to_string(), + vec![ + Term::String("array".to_string()), + Term::List(vec![ + Term::Integer(1.into()), + Term::Integer(2.into()), + Term::Integer(3.into()), + ]), + ], + ); + + let dict_term = Term::Compound( + "dict".to_string(), + vec![Term::List(vec![pair1, pair2, pair3, pair4, pair5])], + ); + + let result = prolog_value_to_json_string(dict_term); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + assert_eq!(parsed["string"], "value"); + assert_eq!(parsed["integer"], 42); + assert_eq!(parsed["float"], 3.14); + assert_eq!(parsed["boolean"], true); + assert_eq!(parsed["array"], serde_json::json!([1, 2, 3])); + assert_eq!(parsed.as_object().unwrap().len(), 5); + } + + #[test] + fn test_dict_mixed_valid_and_invalid_pairs() { + // Dict with mix of valid and invalid pairs - valid ones should be included + let valid_pair = Term::Compound( + "-".to_string(), + vec![ + Term::String("valid".to_string()), + Term::String("value".to_string()), + ], + ); + let invalid_pair = Term::String("not_a_pair".to_string()); + + let dict_term = Term::Compound( + "dict".to_string(), + vec![Term::List(vec![valid_pair, invalid_pair])], + ); + + let result = prolog_value_to_json_string(dict_term); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + // Should only contain the valid pair + assert_eq!(parsed["valid"], "value"); + assert_eq!(parsed.as_object().unwrap().len(), 1); + } + + #[test] + fn test_dict_with_atom_keys() { + // Test dict with atom keys (not string keys) + let pair = Term::Compound( + "-".to_string(), + vec![ + Term::Atom("atom_key".to_string()), + Term::String("value".to_string()), + ], + ); + + let dict_term = Term::Compound("dict".to_string(), vec![Term::List(vec![pair])]); + + let result = prolog_value_to_json_string(dict_term); + let parsed: serde_json::Value = serde_json::from_str(&result).expect("Valid JSON"); + + assert_eq!(parsed["atom_key"], "value"); + } } diff --git a/ui/src-tauri/gen/schemas/acl-manifests.json b/ui/src-tauri/gen/schemas/acl-manifests.json index fe20d1e6d..4d4374e7e 100644 --- a/ui/src-tauri/gen/schemas/acl-manifests.json +++ b/ui/src-tauri/gen/schemas/acl-manifests.json @@ -1 +1 @@ -{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-ask","allow-confirm","allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope.","commands":{"allow":["ask"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope.","commands":{"allow":["confirm"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope.","commands":{"allow":[],"deny":["ask"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"fs":{"default_permission":{"identifier":"default","description":"This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n","permissions":["create-app-specific-dirs","read-app-specific-dirs-recursive","deny-default"]},"permissions":{"allow-copy-file":{"identifier":"allow-copy-file","description":"Enables the copy_file command without any pre-configured scope.","commands":{"allow":["copy_file"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-exists":{"identifier":"allow-exists","description":"Enables the exists command without any pre-configured scope.","commands":{"allow":["exists"],"deny":[]}},"allow-fstat":{"identifier":"allow-fstat","description":"Enables the fstat command without any pre-configured scope.","commands":{"allow":["fstat"],"deny":[]}},"allow-ftruncate":{"identifier":"allow-ftruncate","description":"Enables the ftruncate command without any pre-configured scope.","commands":{"allow":["ftruncate"],"deny":[]}},"allow-lstat":{"identifier":"allow-lstat","description":"Enables the lstat command without any pre-configured scope.","commands":{"allow":["lstat"],"deny":[]}},"allow-mkdir":{"identifier":"allow-mkdir","description":"Enables the mkdir command without any pre-configured scope.","commands":{"allow":["mkdir"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-read":{"identifier":"allow-read","description":"Enables the read command without any pre-configured scope.","commands":{"allow":["read"],"deny":[]}},"allow-read-dir":{"identifier":"allow-read-dir","description":"Enables the read_dir command without any pre-configured scope.","commands":{"allow":["read_dir"],"deny":[]}},"allow-read-file":{"identifier":"allow-read-file","description":"Enables the read_file command without any pre-configured scope.","commands":{"allow":["read_file"],"deny":[]}},"allow-read-text-file":{"identifier":"allow-read-text-file","description":"Enables the read_text_file command without any pre-configured scope.","commands":{"allow":["read_text_file"],"deny":[]}},"allow-read-text-file-lines":{"identifier":"allow-read-text-file-lines","description":"Enables the read_text_file_lines command without any pre-configured scope.","commands":{"allow":["read_text_file_lines"],"deny":[]}},"allow-read-text-file-lines-next":{"identifier":"allow-read-text-file-lines-next","description":"Enables the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":["read_text_file_lines_next"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-rename":{"identifier":"allow-rename","description":"Enables the rename command without any pre-configured scope.","commands":{"allow":["rename"],"deny":[]}},"allow-seek":{"identifier":"allow-seek","description":"Enables the seek command without any pre-configured scope.","commands":{"allow":["seek"],"deny":[]}},"allow-stat":{"identifier":"allow-stat","description":"Enables the stat command without any pre-configured scope.","commands":{"allow":["stat"],"deny":[]}},"allow-truncate":{"identifier":"allow-truncate","description":"Enables the truncate command without any pre-configured scope.","commands":{"allow":["truncate"],"deny":[]}},"allow-unwatch":{"identifier":"allow-unwatch","description":"Enables the unwatch command without any pre-configured scope.","commands":{"allow":["unwatch"],"deny":[]}},"allow-watch":{"identifier":"allow-watch","description":"Enables the watch command without any pre-configured scope.","commands":{"allow":["watch"],"deny":[]}},"allow-write":{"identifier":"allow-write","description":"Enables the write command without any pre-configured scope.","commands":{"allow":["write"],"deny":[]}},"allow-write-file":{"identifier":"allow-write-file","description":"Enables the write_file command without any pre-configured scope.","commands":{"allow":["write_file"],"deny":[]}},"allow-write-text-file":{"identifier":"allow-write-text-file","description":"Enables the write_text_file command without any pre-configured scope.","commands":{"allow":["write_text_file"],"deny":[]}},"create-app-specific-dirs":{"identifier":"create-app-specific-dirs","description":"This permissions allows to create the application specific directories.\n","commands":{"allow":["mkdir","scope-app-index"],"deny":[]}},"deny-copy-file":{"identifier":"deny-copy-file","description":"Denies the copy_file command without any pre-configured scope.","commands":{"allow":[],"deny":["copy_file"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-exists":{"identifier":"deny-exists","description":"Denies the exists command without any pre-configured scope.","commands":{"allow":[],"deny":["exists"]}},"deny-fstat":{"identifier":"deny-fstat","description":"Denies the fstat command without any pre-configured scope.","commands":{"allow":[],"deny":["fstat"]}},"deny-ftruncate":{"identifier":"deny-ftruncate","description":"Denies the ftruncate command without any pre-configured scope.","commands":{"allow":[],"deny":["ftruncate"]}},"deny-lstat":{"identifier":"deny-lstat","description":"Denies the lstat command without any pre-configured scope.","commands":{"allow":[],"deny":["lstat"]}},"deny-mkdir":{"identifier":"deny-mkdir","description":"Denies the mkdir command without any pre-configured scope.","commands":{"allow":[],"deny":["mkdir"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-read":{"identifier":"deny-read","description":"Denies the read command without any pre-configured scope.","commands":{"allow":[],"deny":["read"]}},"deny-read-dir":{"identifier":"deny-read-dir","description":"Denies the read_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["read_dir"]}},"deny-read-file":{"identifier":"deny-read-file","description":"Denies the read_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_file"]}},"deny-read-text-file":{"identifier":"deny-read-text-file","description":"Denies the read_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file"]}},"deny-read-text-file-lines":{"identifier":"deny-read-text-file-lines","description":"Denies the read_text_file_lines command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines"]}},"deny-read-text-file-lines-next":{"identifier":"deny-read-text-file-lines-next","description":"Denies the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines_next"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-rename":{"identifier":"deny-rename","description":"Denies the rename command without any pre-configured scope.","commands":{"allow":[],"deny":["rename"]}},"deny-seek":{"identifier":"deny-seek","description":"Denies the seek command without any pre-configured scope.","commands":{"allow":[],"deny":["seek"]}},"deny-stat":{"identifier":"deny-stat","description":"Denies the stat command without any pre-configured scope.","commands":{"allow":[],"deny":["stat"]}},"deny-truncate":{"identifier":"deny-truncate","description":"Denies the truncate command without any pre-configured scope.","commands":{"allow":[],"deny":["truncate"]}},"deny-unwatch":{"identifier":"deny-unwatch","description":"Denies the unwatch command without any pre-configured scope.","commands":{"allow":[],"deny":["unwatch"]}},"deny-watch":{"identifier":"deny-watch","description":"Denies the watch command without any pre-configured scope.","commands":{"allow":[],"deny":["watch"]}},"deny-webview-data-linux":{"identifier":"deny-webview-data-linux","description":"This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-webview-data-windows":{"identifier":"deny-webview-data-windows","description":"This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-write":{"identifier":"deny-write","description":"Denies the write command without any pre-configured scope.","commands":{"allow":[],"deny":["write"]}},"deny-write-file":{"identifier":"deny-write-file","description":"Denies the write_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_file"]}},"deny-write-text-file":{"identifier":"deny-write-text-file","description":"Denies the write_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text_file"]}},"read-all":{"identifier":"read-all","description":"This enables all read related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists","watch","unwatch"],"deny":[]}},"read-app-specific-dirs-recursive":{"identifier":"read-app-specific-dirs-recursive","description":"This permission allows recursive read functionality on the application\nspecific base directories. \n","commands":{"allow":["read_dir","read_file","read_text_file","read_text_file_lines","read_text_file_lines_next","exists","scope-app-recursive"],"deny":[]}},"read-dirs":{"identifier":"read-dirs","description":"This enables directory read and file metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"read-files":{"identifier":"read-files","description":"This enables file read related commands without any pre-configured accessible paths.","commands":{"allow":["read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists"],"deny":[]}},"read-meta":{"identifier":"read-meta","description":"This enables all index or metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"scope":{"identifier":"scope","description":"An empty permission you can use to modify the global scope.","commands":{"allow":[],"deny":[]}},"scope-app":{"identifier":"scope-app","description":"This scope permits access to all files and list content of top level directories in the application folders.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"},{"path":"$APPDATA"},{"path":"$APPDATA/*"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"},{"path":"$APPCACHE"},{"path":"$APPCACHE/*"},{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-app-index":{"identifier":"scope-app-index","description":"This scope permits to list all files and folders in the application directories.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPDATA"},{"path":"$APPLOCALDATA"},{"path":"$APPCACHE"},{"path":"$APPLOG"}]}},"scope-app-recursive":{"identifier":"scope-app-recursive","description":"This scope permits recursive access to the complete application folders, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"},{"path":"$APPDATA"},{"path":"$APPDATA/**"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"},{"path":"$APPCACHE"},{"path":"$APPCACHE/**"},{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-appcache":{"identifier":"scope-appcache","description":"This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/*"}]}},"scope-appcache-index":{"identifier":"scope-appcache-index","description":"This scope permits to list all files and folders in the `$APPCACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"}]}},"scope-appcache-recursive":{"identifier":"scope-appcache-recursive","description":"This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/**"}]}},"scope-appconfig":{"identifier":"scope-appconfig","description":"This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"}]}},"scope-appconfig-index":{"identifier":"scope-appconfig-index","description":"This scope permits to list all files and folders in the `$APPCONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"}]}},"scope-appconfig-recursive":{"identifier":"scope-appconfig-recursive","description":"This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"}]}},"scope-appdata":{"identifier":"scope-appdata","description":"This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/*"}]}},"scope-appdata-index":{"identifier":"scope-appdata-index","description":"This scope permits to list all files and folders in the `$APPDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"}]}},"scope-appdata-recursive":{"identifier":"scope-appdata-recursive","description":"This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]}},"scope-applocaldata":{"identifier":"scope-applocaldata","description":"This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"}]}},"scope-applocaldata-index":{"identifier":"scope-applocaldata-index","description":"This scope permits to list all files and folders in the `$APPLOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"}]}},"scope-applocaldata-recursive":{"identifier":"scope-applocaldata-recursive","description":"This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"}]}},"scope-applog":{"identifier":"scope-applog","description":"This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-applog-index":{"identifier":"scope-applog-index","description":"This scope permits to list all files and folders in the `$APPLOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"}]}},"scope-applog-recursive":{"identifier":"scope-applog-recursive","description":"This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-audio":{"identifier":"scope-audio","description":"This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/*"}]}},"scope-audio-index":{"identifier":"scope-audio-index","description":"This scope permits to list all files and folders in the `$AUDIO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"}]}},"scope-audio-recursive":{"identifier":"scope-audio-recursive","description":"This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/**"}]}},"scope-cache":{"identifier":"scope-cache","description":"This scope permits access to all files and list content of top level directories in the `$CACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/*"}]}},"scope-cache-index":{"identifier":"scope-cache-index","description":"This scope permits to list all files and folders in the `$CACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"}]}},"scope-cache-recursive":{"identifier":"scope-cache-recursive","description":"This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/**"}]}},"scope-config":{"identifier":"scope-config","description":"This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/*"}]}},"scope-config-index":{"identifier":"scope-config-index","description":"This scope permits to list all files and folders in the `$CONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"}]}},"scope-config-recursive":{"identifier":"scope-config-recursive","description":"This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/**"}]}},"scope-data":{"identifier":"scope-data","description":"This scope permits access to all files and list content of top level directories in the `$DATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/*"}]}},"scope-data-index":{"identifier":"scope-data-index","description":"This scope permits to list all files and folders in the `$DATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"}]}},"scope-data-recursive":{"identifier":"scope-data-recursive","description":"This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/**"}]}},"scope-desktop":{"identifier":"scope-desktop","description":"This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/*"}]}},"scope-desktop-index":{"identifier":"scope-desktop-index","description":"This scope permits to list all files and folders in the `$DESKTOP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"}]}},"scope-desktop-recursive":{"identifier":"scope-desktop-recursive","description":"This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/**"}]}},"scope-document":{"identifier":"scope-document","description":"This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/*"}]}},"scope-document-index":{"identifier":"scope-document-index","description":"This scope permits to list all files and folders in the `$DOCUMENT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"}]}},"scope-document-recursive":{"identifier":"scope-document-recursive","description":"This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/**"}]}},"scope-download":{"identifier":"scope-download","description":"This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/*"}]}},"scope-download-index":{"identifier":"scope-download-index","description":"This scope permits to list all files and folders in the `$DOWNLOAD`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"}]}},"scope-download-recursive":{"identifier":"scope-download-recursive","description":"This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/**"}]}},"scope-exe":{"identifier":"scope-exe","description":"This scope permits access to all files and list content of top level directories in the `$EXE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/*"}]}},"scope-exe-index":{"identifier":"scope-exe-index","description":"This scope permits to list all files and folders in the `$EXE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"}]}},"scope-exe-recursive":{"identifier":"scope-exe-recursive","description":"This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/**"}]}},"scope-font":{"identifier":"scope-font","description":"This scope permits access to all files and list content of top level directories in the `$FONT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/*"}]}},"scope-font-index":{"identifier":"scope-font-index","description":"This scope permits to list all files and folders in the `$FONT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"}]}},"scope-font-recursive":{"identifier":"scope-font-recursive","description":"This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/**"}]}},"scope-home":{"identifier":"scope-home","description":"This scope permits access to all files and list content of top level directories in the `$HOME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/*"}]}},"scope-home-index":{"identifier":"scope-home-index","description":"This scope permits to list all files and folders in the `$HOME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"}]}},"scope-home-recursive":{"identifier":"scope-home-recursive","description":"This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/**"}]}},"scope-localdata":{"identifier":"scope-localdata","description":"This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/*"}]}},"scope-localdata-index":{"identifier":"scope-localdata-index","description":"This scope permits to list all files and folders in the `$LOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"}]}},"scope-localdata-recursive":{"identifier":"scope-localdata-recursive","description":"This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/**"}]}},"scope-log":{"identifier":"scope-log","description":"This scope permits access to all files and list content of top level directories in the `$LOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/*"}]}},"scope-log-index":{"identifier":"scope-log-index","description":"This scope permits to list all files and folders in the `$LOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"}]}},"scope-log-recursive":{"identifier":"scope-log-recursive","description":"This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/**"}]}},"scope-picture":{"identifier":"scope-picture","description":"This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/*"}]}},"scope-picture-index":{"identifier":"scope-picture-index","description":"This scope permits to list all files and folders in the `$PICTURE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"}]}},"scope-picture-recursive":{"identifier":"scope-picture-recursive","description":"This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/**"}]}},"scope-public":{"identifier":"scope-public","description":"This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/*"}]}},"scope-public-index":{"identifier":"scope-public-index","description":"This scope permits to list all files and folders in the `$PUBLIC`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"}]}},"scope-public-recursive":{"identifier":"scope-public-recursive","description":"This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/**"}]}},"scope-resource":{"identifier":"scope-resource","description":"This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/*"}]}},"scope-resource-index":{"identifier":"scope-resource-index","description":"This scope permits to list all files and folders in the `$RESOURCE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"}]}},"scope-resource-recursive":{"identifier":"scope-resource-recursive","description":"This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/**"}]}},"scope-runtime":{"identifier":"scope-runtime","description":"This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/*"}]}},"scope-runtime-index":{"identifier":"scope-runtime-index","description":"This scope permits to list all files and folders in the `$RUNTIME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"}]}},"scope-runtime-recursive":{"identifier":"scope-runtime-recursive","description":"This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/**"}]}},"scope-temp":{"identifier":"scope-temp","description":"This scope permits access to all files and list content of top level directories in the `$TEMP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/*"}]}},"scope-temp-index":{"identifier":"scope-temp-index","description":"This scope permits to list all files and folders in the `$TEMP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"}]}},"scope-temp-recursive":{"identifier":"scope-temp-recursive","description":"This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/**"}]}},"scope-template":{"identifier":"scope-template","description":"This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/*"}]}},"scope-template-index":{"identifier":"scope-template-index","description":"This scope permits to list all files and folders in the `$TEMPLATE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"}]}},"scope-template-recursive":{"identifier":"scope-template-recursive","description":"This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/**"}]}},"scope-video":{"identifier":"scope-video","description":"This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/*"}]}},"scope-video-index":{"identifier":"scope-video-index","description":"This scope permits to list all files and folders in the `$VIDEO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"}]}},"scope-video-recursive":{"identifier":"scope-video-recursive","description":"This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/**"}]}},"write-all":{"identifier":"write-all","description":"This enables all write related commands without any pre-configured accessible paths.","commands":{"allow":["mkdir","create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}},"write-files":{"identifier":"write-files","description":"This enables all file write related commands without any pre-configured accessible paths.","commands":{"allow":["create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}}},"permission_sets":{"allow-app-meta":{"identifier":"allow-app-meta","description":"This allows non-recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-index"]},"allow-app-meta-recursive":{"identifier":"allow-app-meta-recursive","description":"This allows full recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-recursive"]},"allow-app-read":{"identifier":"allow-app-read","description":"This allows non-recursive read access to the application folders.","permissions":["read-all","scope-app"]},"allow-app-read-recursive":{"identifier":"allow-app-read-recursive","description":"This allows full recursive read access to the complete application folders, files and subdirectories.","permissions":["read-all","scope-app-recursive"]},"allow-app-write":{"identifier":"allow-app-write","description":"This allows non-recursive write access to the application folders.","permissions":["write-all","scope-app"]},"allow-app-write-recursive":{"identifier":"allow-app-write-recursive","description":"This allows full recursive write access to the complete application folders, files and subdirectories.","permissions":["write-all","scope-app-recursive"]},"allow-appcache-meta":{"identifier":"allow-appcache-meta","description":"This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-index"]},"allow-appcache-meta-recursive":{"identifier":"allow-appcache-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-recursive"]},"allow-appcache-read":{"identifier":"allow-appcache-read","description":"This allows non-recursive read access to the `$APPCACHE` folder.","permissions":["read-all","scope-appcache"]},"allow-appcache-read-recursive":{"identifier":"allow-appcache-read-recursive","description":"This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["read-all","scope-appcache-recursive"]},"allow-appcache-write":{"identifier":"allow-appcache-write","description":"This allows non-recursive write access to the `$APPCACHE` folder.","permissions":["write-all","scope-appcache"]},"allow-appcache-write-recursive":{"identifier":"allow-appcache-write-recursive","description":"This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["write-all","scope-appcache-recursive"]},"allow-appconfig-meta":{"identifier":"allow-appconfig-meta","description":"This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-index"]},"allow-appconfig-meta-recursive":{"identifier":"allow-appconfig-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-recursive"]},"allow-appconfig-read":{"identifier":"allow-appconfig-read","description":"This allows non-recursive read access to the `$APPCONFIG` folder.","permissions":["read-all","scope-appconfig"]},"allow-appconfig-read-recursive":{"identifier":"allow-appconfig-read-recursive","description":"This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["read-all","scope-appconfig-recursive"]},"allow-appconfig-write":{"identifier":"allow-appconfig-write","description":"This allows non-recursive write access to the `$APPCONFIG` folder.","permissions":["write-all","scope-appconfig"]},"allow-appconfig-write-recursive":{"identifier":"allow-appconfig-write-recursive","description":"This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["write-all","scope-appconfig-recursive"]},"allow-appdata-meta":{"identifier":"allow-appdata-meta","description":"This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-index"]},"allow-appdata-meta-recursive":{"identifier":"allow-appdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-recursive"]},"allow-appdata-read":{"identifier":"allow-appdata-read","description":"This allows non-recursive read access to the `$APPDATA` folder.","permissions":["read-all","scope-appdata"]},"allow-appdata-read-recursive":{"identifier":"allow-appdata-read-recursive","description":"This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["read-all","scope-appdata-recursive"]},"allow-appdata-write":{"identifier":"allow-appdata-write","description":"This allows non-recursive write access to the `$APPDATA` folder.","permissions":["write-all","scope-appdata"]},"allow-appdata-write-recursive":{"identifier":"allow-appdata-write-recursive","description":"This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["write-all","scope-appdata-recursive"]},"allow-applocaldata-meta":{"identifier":"allow-applocaldata-meta","description":"This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-index"]},"allow-applocaldata-meta-recursive":{"identifier":"allow-applocaldata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-recursive"]},"allow-applocaldata-read":{"identifier":"allow-applocaldata-read","description":"This allows non-recursive read access to the `$APPLOCALDATA` folder.","permissions":["read-all","scope-applocaldata"]},"allow-applocaldata-read-recursive":{"identifier":"allow-applocaldata-read-recursive","description":"This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-applocaldata-recursive"]},"allow-applocaldata-write":{"identifier":"allow-applocaldata-write","description":"This allows non-recursive write access to the `$APPLOCALDATA` folder.","permissions":["write-all","scope-applocaldata"]},"allow-applocaldata-write-recursive":{"identifier":"allow-applocaldata-write-recursive","description":"This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-applocaldata-recursive"]},"allow-applog-meta":{"identifier":"allow-applog-meta","description":"This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-index"]},"allow-applog-meta-recursive":{"identifier":"allow-applog-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-recursive"]},"allow-applog-read":{"identifier":"allow-applog-read","description":"This allows non-recursive read access to the `$APPLOG` folder.","permissions":["read-all","scope-applog"]},"allow-applog-read-recursive":{"identifier":"allow-applog-read-recursive","description":"This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["read-all","scope-applog-recursive"]},"allow-applog-write":{"identifier":"allow-applog-write","description":"This allows non-recursive write access to the `$APPLOG` folder.","permissions":["write-all","scope-applog"]},"allow-applog-write-recursive":{"identifier":"allow-applog-write-recursive","description":"This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["write-all","scope-applog-recursive"]},"allow-audio-meta":{"identifier":"allow-audio-meta","description":"This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-index"]},"allow-audio-meta-recursive":{"identifier":"allow-audio-meta-recursive","description":"This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-recursive"]},"allow-audio-read":{"identifier":"allow-audio-read","description":"This allows non-recursive read access to the `$AUDIO` folder.","permissions":["read-all","scope-audio"]},"allow-audio-read-recursive":{"identifier":"allow-audio-read-recursive","description":"This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["read-all","scope-audio-recursive"]},"allow-audio-write":{"identifier":"allow-audio-write","description":"This allows non-recursive write access to the `$AUDIO` folder.","permissions":["write-all","scope-audio"]},"allow-audio-write-recursive":{"identifier":"allow-audio-write-recursive","description":"This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["write-all","scope-audio-recursive"]},"allow-cache-meta":{"identifier":"allow-cache-meta","description":"This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-index"]},"allow-cache-meta-recursive":{"identifier":"allow-cache-meta-recursive","description":"This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-recursive"]},"allow-cache-read":{"identifier":"allow-cache-read","description":"This allows non-recursive read access to the `$CACHE` folder.","permissions":["read-all","scope-cache"]},"allow-cache-read-recursive":{"identifier":"allow-cache-read-recursive","description":"This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.","permissions":["read-all","scope-cache-recursive"]},"allow-cache-write":{"identifier":"allow-cache-write","description":"This allows non-recursive write access to the `$CACHE` folder.","permissions":["write-all","scope-cache"]},"allow-cache-write-recursive":{"identifier":"allow-cache-write-recursive","description":"This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.","permissions":["write-all","scope-cache-recursive"]},"allow-config-meta":{"identifier":"allow-config-meta","description":"This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-index"]},"allow-config-meta-recursive":{"identifier":"allow-config-meta-recursive","description":"This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-recursive"]},"allow-config-read":{"identifier":"allow-config-read","description":"This allows non-recursive read access to the `$CONFIG` folder.","permissions":["read-all","scope-config"]},"allow-config-read-recursive":{"identifier":"allow-config-read-recursive","description":"This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["read-all","scope-config-recursive"]},"allow-config-write":{"identifier":"allow-config-write","description":"This allows non-recursive write access to the `$CONFIG` folder.","permissions":["write-all","scope-config"]},"allow-config-write-recursive":{"identifier":"allow-config-write-recursive","description":"This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["write-all","scope-config-recursive"]},"allow-data-meta":{"identifier":"allow-data-meta","description":"This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-index"]},"allow-data-meta-recursive":{"identifier":"allow-data-meta-recursive","description":"This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-recursive"]},"allow-data-read":{"identifier":"allow-data-read","description":"This allows non-recursive read access to the `$DATA` folder.","permissions":["read-all","scope-data"]},"allow-data-read-recursive":{"identifier":"allow-data-read-recursive","description":"This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.","permissions":["read-all","scope-data-recursive"]},"allow-data-write":{"identifier":"allow-data-write","description":"This allows non-recursive write access to the `$DATA` folder.","permissions":["write-all","scope-data"]},"allow-data-write-recursive":{"identifier":"allow-data-write-recursive","description":"This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.","permissions":["write-all","scope-data-recursive"]},"allow-desktop-meta":{"identifier":"allow-desktop-meta","description":"This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-index"]},"allow-desktop-meta-recursive":{"identifier":"allow-desktop-meta-recursive","description":"This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-recursive"]},"allow-desktop-read":{"identifier":"allow-desktop-read","description":"This allows non-recursive read access to the `$DESKTOP` folder.","permissions":["read-all","scope-desktop"]},"allow-desktop-read-recursive":{"identifier":"allow-desktop-read-recursive","description":"This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["read-all","scope-desktop-recursive"]},"allow-desktop-write":{"identifier":"allow-desktop-write","description":"This allows non-recursive write access to the `$DESKTOP` folder.","permissions":["write-all","scope-desktop"]},"allow-desktop-write-recursive":{"identifier":"allow-desktop-write-recursive","description":"This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["write-all","scope-desktop-recursive"]},"allow-document-meta":{"identifier":"allow-document-meta","description":"This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-index"]},"allow-document-meta-recursive":{"identifier":"allow-document-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-recursive"]},"allow-document-read":{"identifier":"allow-document-read","description":"This allows non-recursive read access to the `$DOCUMENT` folder.","permissions":["read-all","scope-document"]},"allow-document-read-recursive":{"identifier":"allow-document-read-recursive","description":"This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["read-all","scope-document-recursive"]},"allow-document-write":{"identifier":"allow-document-write","description":"This allows non-recursive write access to the `$DOCUMENT` folder.","permissions":["write-all","scope-document"]},"allow-document-write-recursive":{"identifier":"allow-document-write-recursive","description":"This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["write-all","scope-document-recursive"]},"allow-download-meta":{"identifier":"allow-download-meta","description":"This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-index"]},"allow-download-meta-recursive":{"identifier":"allow-download-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-recursive"]},"allow-download-read":{"identifier":"allow-download-read","description":"This allows non-recursive read access to the `$DOWNLOAD` folder.","permissions":["read-all","scope-download"]},"allow-download-read-recursive":{"identifier":"allow-download-read-recursive","description":"This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["read-all","scope-download-recursive"]},"allow-download-write":{"identifier":"allow-download-write","description":"This allows non-recursive write access to the `$DOWNLOAD` folder.","permissions":["write-all","scope-download"]},"allow-download-write-recursive":{"identifier":"allow-download-write-recursive","description":"This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["write-all","scope-download-recursive"]},"allow-exe-meta":{"identifier":"allow-exe-meta","description":"This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-index"]},"allow-exe-meta-recursive":{"identifier":"allow-exe-meta-recursive","description":"This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-recursive"]},"allow-exe-read":{"identifier":"allow-exe-read","description":"This allows non-recursive read access to the `$EXE` folder.","permissions":["read-all","scope-exe"]},"allow-exe-read-recursive":{"identifier":"allow-exe-read-recursive","description":"This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.","permissions":["read-all","scope-exe-recursive"]},"allow-exe-write":{"identifier":"allow-exe-write","description":"This allows non-recursive write access to the `$EXE` folder.","permissions":["write-all","scope-exe"]},"allow-exe-write-recursive":{"identifier":"allow-exe-write-recursive","description":"This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.","permissions":["write-all","scope-exe-recursive"]},"allow-font-meta":{"identifier":"allow-font-meta","description":"This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-index"]},"allow-font-meta-recursive":{"identifier":"allow-font-meta-recursive","description":"This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-recursive"]},"allow-font-read":{"identifier":"allow-font-read","description":"This allows non-recursive read access to the `$FONT` folder.","permissions":["read-all","scope-font"]},"allow-font-read-recursive":{"identifier":"allow-font-read-recursive","description":"This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.","permissions":["read-all","scope-font-recursive"]},"allow-font-write":{"identifier":"allow-font-write","description":"This allows non-recursive write access to the `$FONT` folder.","permissions":["write-all","scope-font"]},"allow-font-write-recursive":{"identifier":"allow-font-write-recursive","description":"This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.","permissions":["write-all","scope-font-recursive"]},"allow-home-meta":{"identifier":"allow-home-meta","description":"This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-index"]},"allow-home-meta-recursive":{"identifier":"allow-home-meta-recursive","description":"This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-recursive"]},"allow-home-read":{"identifier":"allow-home-read","description":"This allows non-recursive read access to the `$HOME` folder.","permissions":["read-all","scope-home"]},"allow-home-read-recursive":{"identifier":"allow-home-read-recursive","description":"This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.","permissions":["read-all","scope-home-recursive"]},"allow-home-write":{"identifier":"allow-home-write","description":"This allows non-recursive write access to the `$HOME` folder.","permissions":["write-all","scope-home"]},"allow-home-write-recursive":{"identifier":"allow-home-write-recursive","description":"This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.","permissions":["write-all","scope-home-recursive"]},"allow-localdata-meta":{"identifier":"allow-localdata-meta","description":"This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-index"]},"allow-localdata-meta-recursive":{"identifier":"allow-localdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-recursive"]},"allow-localdata-read":{"identifier":"allow-localdata-read","description":"This allows non-recursive read access to the `$LOCALDATA` folder.","permissions":["read-all","scope-localdata"]},"allow-localdata-read-recursive":{"identifier":"allow-localdata-read-recursive","description":"This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-localdata-recursive"]},"allow-localdata-write":{"identifier":"allow-localdata-write","description":"This allows non-recursive write access to the `$LOCALDATA` folder.","permissions":["write-all","scope-localdata"]},"allow-localdata-write-recursive":{"identifier":"allow-localdata-write-recursive","description":"This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-localdata-recursive"]},"allow-log-meta":{"identifier":"allow-log-meta","description":"This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-index"]},"allow-log-meta-recursive":{"identifier":"allow-log-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-recursive"]},"allow-log-read":{"identifier":"allow-log-read","description":"This allows non-recursive read access to the `$LOG` folder.","permissions":["read-all","scope-log"]},"allow-log-read-recursive":{"identifier":"allow-log-read-recursive","description":"This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.","permissions":["read-all","scope-log-recursive"]},"allow-log-write":{"identifier":"allow-log-write","description":"This allows non-recursive write access to the `$LOG` folder.","permissions":["write-all","scope-log"]},"allow-log-write-recursive":{"identifier":"allow-log-write-recursive","description":"This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.","permissions":["write-all","scope-log-recursive"]},"allow-picture-meta":{"identifier":"allow-picture-meta","description":"This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-index"]},"allow-picture-meta-recursive":{"identifier":"allow-picture-meta-recursive","description":"This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-recursive"]},"allow-picture-read":{"identifier":"allow-picture-read","description":"This allows non-recursive read access to the `$PICTURE` folder.","permissions":["read-all","scope-picture"]},"allow-picture-read-recursive":{"identifier":"allow-picture-read-recursive","description":"This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["read-all","scope-picture-recursive"]},"allow-picture-write":{"identifier":"allow-picture-write","description":"This allows non-recursive write access to the `$PICTURE` folder.","permissions":["write-all","scope-picture"]},"allow-picture-write-recursive":{"identifier":"allow-picture-write-recursive","description":"This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["write-all","scope-picture-recursive"]},"allow-public-meta":{"identifier":"allow-public-meta","description":"This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-index"]},"allow-public-meta-recursive":{"identifier":"allow-public-meta-recursive","description":"This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-recursive"]},"allow-public-read":{"identifier":"allow-public-read","description":"This allows non-recursive read access to the `$PUBLIC` folder.","permissions":["read-all","scope-public"]},"allow-public-read-recursive":{"identifier":"allow-public-read-recursive","description":"This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["read-all","scope-public-recursive"]},"allow-public-write":{"identifier":"allow-public-write","description":"This allows non-recursive write access to the `$PUBLIC` folder.","permissions":["write-all","scope-public"]},"allow-public-write-recursive":{"identifier":"allow-public-write-recursive","description":"This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["write-all","scope-public-recursive"]},"allow-resource-meta":{"identifier":"allow-resource-meta","description":"This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-index"]},"allow-resource-meta-recursive":{"identifier":"allow-resource-meta-recursive","description":"This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-recursive"]},"allow-resource-read":{"identifier":"allow-resource-read","description":"This allows non-recursive read access to the `$RESOURCE` folder.","permissions":["read-all","scope-resource"]},"allow-resource-read-recursive":{"identifier":"allow-resource-read-recursive","description":"This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["read-all","scope-resource-recursive"]},"allow-resource-write":{"identifier":"allow-resource-write","description":"This allows non-recursive write access to the `$RESOURCE` folder.","permissions":["write-all","scope-resource"]},"allow-resource-write-recursive":{"identifier":"allow-resource-write-recursive","description":"This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["write-all","scope-resource-recursive"]},"allow-runtime-meta":{"identifier":"allow-runtime-meta","description":"This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-index"]},"allow-runtime-meta-recursive":{"identifier":"allow-runtime-meta-recursive","description":"This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-recursive"]},"allow-runtime-read":{"identifier":"allow-runtime-read","description":"This allows non-recursive read access to the `$RUNTIME` folder.","permissions":["read-all","scope-runtime"]},"allow-runtime-read-recursive":{"identifier":"allow-runtime-read-recursive","description":"This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["read-all","scope-runtime-recursive"]},"allow-runtime-write":{"identifier":"allow-runtime-write","description":"This allows non-recursive write access to the `$RUNTIME` folder.","permissions":["write-all","scope-runtime"]},"allow-runtime-write-recursive":{"identifier":"allow-runtime-write-recursive","description":"This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["write-all","scope-runtime-recursive"]},"allow-temp-meta":{"identifier":"allow-temp-meta","description":"This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-index"]},"allow-temp-meta-recursive":{"identifier":"allow-temp-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-recursive"]},"allow-temp-read":{"identifier":"allow-temp-read","description":"This allows non-recursive read access to the `$TEMP` folder.","permissions":["read-all","scope-temp"]},"allow-temp-read-recursive":{"identifier":"allow-temp-read-recursive","description":"This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.","permissions":["read-all","scope-temp-recursive"]},"allow-temp-write":{"identifier":"allow-temp-write","description":"This allows non-recursive write access to the `$TEMP` folder.","permissions":["write-all","scope-temp"]},"allow-temp-write-recursive":{"identifier":"allow-temp-write-recursive","description":"This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.","permissions":["write-all","scope-temp-recursive"]},"allow-template-meta":{"identifier":"allow-template-meta","description":"This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-index"]},"allow-template-meta-recursive":{"identifier":"allow-template-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-recursive"]},"allow-template-read":{"identifier":"allow-template-read","description":"This allows non-recursive read access to the `$TEMPLATE` folder.","permissions":["read-all","scope-template"]},"allow-template-read-recursive":{"identifier":"allow-template-read-recursive","description":"This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["read-all","scope-template-recursive"]},"allow-template-write":{"identifier":"allow-template-write","description":"This allows non-recursive write access to the `$TEMPLATE` folder.","permissions":["write-all","scope-template"]},"allow-template-write-recursive":{"identifier":"allow-template-write-recursive","description":"This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["write-all","scope-template-recursive"]},"allow-video-meta":{"identifier":"allow-video-meta","description":"This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-index"]},"allow-video-meta-recursive":{"identifier":"allow-video-meta-recursive","description":"This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-recursive"]},"allow-video-read":{"identifier":"allow-video-read","description":"This allows non-recursive read access to the `$VIDEO` folder.","permissions":["read-all","scope-video"]},"allow-video-read-recursive":{"identifier":"allow-video-read-recursive","description":"This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["read-all","scope-video-recursive"]},"allow-video-write":{"identifier":"allow-video-write","description":"This allows non-recursive write access to the `$VIDEO` folder.","permissions":["write-all","scope-video"]},"allow-video-write-recursive":{"identifier":"allow-video-write-recursive","description":"This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["write-all","scope-video-recursive"]},"deny-default":{"identifier":"deny-default","description":"This denies access to dangerous Tauri relevant files and folders by default.","permissions":["deny-webview-data-linux","deny-webview-data-windows"]}},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"FsScopeEntry","description":"FS scope entry.","anyOf":[{"description":"FS scope path.","type":"string"},{"type":"object","required":["path"],"properties":{"path":{"description":"FS scope path.","type":"string"}}}]}},"global-shortcut":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n","permissions":[]},"permissions":{"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-register-all":{"identifier":"allow-register-all","description":"Enables the register_all command without any pre-configured scope.","commands":{"allow":["register_all"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"allow-unregister-all":{"identifier":"allow-unregister-all","description":"Enables the unregister_all command without any pre-configured scope.","commands":{"allow":["unregister_all"],"deny":[]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-register-all":{"identifier":"deny-register-all","description":"Denies the register_all command without any pre-configured scope.","commands":{"allow":[],"deny":["register_all"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}},"deny-unregister-all":{"identifier":"deny-unregister-all","description":"Denies the unregister_all command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister_all"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"HttpScopeEntry","description":"HTTP scope entry.","anyOf":[{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},{"type":"object","required":["url"],"properties":{"url":{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}}}]}},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"OpenerScopeEntry","description":"Opener scope entry.","anyOf":[{"type":"object","required":["url"],"properties":{"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},"app":{"description":"An application to open this url with, for example: firefox.","allOf":[{"$ref":"#/definitions/Application"}]}}},{"type":"object","required":["path"],"properties":{"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"app":{"description":"An application to open this path with, for example: xdg-open.","allOf":[{"$ref":"#/definitions/Application"}]}}}],"definitions":{"Application":{"description":"Opener scope application.","anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}]}}}},"os":{"default_permission":{"identifier":"default","description":"This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n","permissions":["allow-arch","allow-exe-extension","allow-family","allow-locale","allow-os-type","allow-platform","allow-version"]},"permissions":{"allow-arch":{"identifier":"allow-arch","description":"Enables the arch command without any pre-configured scope.","commands":{"allow":["arch"],"deny":[]}},"allow-exe-extension":{"identifier":"allow-exe-extension","description":"Enables the exe_extension command without any pre-configured scope.","commands":{"allow":["exe_extension"],"deny":[]}},"allow-family":{"identifier":"allow-family","description":"Enables the family command without any pre-configured scope.","commands":{"allow":["family"],"deny":[]}},"allow-hostname":{"identifier":"allow-hostname","description":"Enables the hostname command without any pre-configured scope.","commands":{"allow":["hostname"],"deny":[]}},"allow-locale":{"identifier":"allow-locale","description":"Enables the locale command without any pre-configured scope.","commands":{"allow":["locale"],"deny":[]}},"allow-os-type":{"identifier":"allow-os-type","description":"Enables the os_type command without any pre-configured scope.","commands":{"allow":["os_type"],"deny":[]}},"allow-platform":{"identifier":"allow-platform","description":"Enables the platform command without any pre-configured scope.","commands":{"allow":["platform"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-arch":{"identifier":"deny-arch","description":"Denies the arch command without any pre-configured scope.","commands":{"allow":[],"deny":["arch"]}},"deny-exe-extension":{"identifier":"deny-exe-extension","description":"Denies the exe_extension command without any pre-configured scope.","commands":{"allow":[],"deny":["exe_extension"]}},"deny-family":{"identifier":"deny-family","description":"Denies the family command without any pre-configured scope.","commands":{"allow":[],"deny":["family"]}},"deny-hostname":{"identifier":"deny-hostname","description":"Denies the hostname command without any pre-configured scope.","commands":{"allow":[],"deny":["hostname"]}},"deny-locale":{"identifier":"deny-locale","description":"Denies the locale command without any pre-configured scope.","commands":{"allow":[],"deny":["locale"]}},"deny-os-type":{"identifier":"deny-os-type","description":"Denies the os_type command without any pre-configured scope.","commands":{"allow":[],"deny":["os_type"]}},"deny-platform":{"identifier":"deny-platform","description":"Denies the platform command without any pre-configured scope.","commands":{"allow":[],"deny":["platform"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"positioner":{"default_permission":{"identifier":"default","description":"Allows the moveWindow and handleIconState APIs","permissions":["allow-move-window","set-tray-icon-state"]},"permissions":{"allow-move-window":{"identifier":"allow-move-window","description":"Enables the move_window command without any pre-configured scope.","commands":{"allow":["move_window"],"deny":[]}},"allow-set-tray-icon-state":{"identifier":"allow-set-tray-icon-state","description":"Enables the set_tray_icon_state command without any pre-configured scope.","commands":{"allow":["set_tray_icon_state"],"deny":[]}},"deny-move-window":{"identifier":"deny-move-window","description":"Denies the move_window command without any pre-configured scope.","commands":{"allow":[],"deny":["move_window"]}},"deny-set-tray-icon-state":{"identifier":"deny-set-tray-icon-state","description":"Denies the set_tray_icon_state command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tray_icon_state"]}}},"permission_sets":{},"global_scope_schema":null},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ShellScopeEntry","description":"Shell scope entry.","anyOf":[{"type":"object","required":["cmd","name"],"properties":{"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"args":{"description":"The allowed arguments for the command execution.","allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}]}},"additionalProperties":false},{"type":"object","required":["name","sidecar"],"properties":{"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"args":{"description":"The allowed arguments for the command execution.","allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}]},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"additionalProperties":false}],"definitions":{"ShellScopeEntryAllowedArgs":{"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.","anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","type":"array","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"}}]},"ShellScopeEntryAllowedArg":{"description":"A command argument allowed to be executed by the webview API.","anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"description":"A variable that is set while calling the command from the webview API.","type":"object","required":["validator"],"properties":{"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"},"raw":{"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","default":false,"type":"boolean"}},"additionalProperties":false}]}}}},"updater":{"default_permission":{"identifier":"default","description":"This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n","permissions":["allow-check","allow-download","allow-install","allow-download-and-install"]},"permissions":{"allow-check":{"identifier":"allow-check","description":"Enables the check command without any pre-configured scope.","commands":{"allow":["check"],"deny":[]}},"allow-download":{"identifier":"allow-download","description":"Enables the download command without any pre-configured scope.","commands":{"allow":["download"],"deny":[]}},"allow-download-and-install":{"identifier":"allow-download-and-install","description":"Enables the download_and_install command without any pre-configured scope.","commands":{"allow":["download_and_install"],"deny":[]}},"allow-install":{"identifier":"allow-install","description":"Enables the install command without any pre-configured scope.","commands":{"allow":["install"],"deny":[]}},"deny-check":{"identifier":"deny-check","description":"Denies the check command without any pre-configured scope.","commands":{"allow":[],"deny":["check"]}},"deny-download":{"identifier":"deny-download","description":"Denies the download command without any pre-configured scope.","commands":{"allow":[],"deny":["download"]}},"deny-download-and-install":{"identifier":"deny-download-and-install","description":"Denies the download_and_install command without any pre-configured scope.","commands":{"allow":[],"deny":["download_and_install"]}},"deny-install":{"identifier":"deny-install","description":"Denies the install command without any pre-configured scope.","commands":{"allow":[],"deny":["install"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file +{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-ask","allow-confirm","allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope.","commands":{"allow":["ask"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope.","commands":{"allow":["confirm"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope.","commands":{"allow":[],"deny":["ask"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"fs":{"default_permission":{"identifier":"default","description":"This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n","permissions":["create-app-specific-dirs","read-app-specific-dirs-recursive","deny-default"]},"permissions":{"allow-copy-file":{"identifier":"allow-copy-file","description":"Enables the copy_file command without any pre-configured scope.","commands":{"allow":["copy_file"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-exists":{"identifier":"allow-exists","description":"Enables the exists command without any pre-configured scope.","commands":{"allow":["exists"],"deny":[]}},"allow-fstat":{"identifier":"allow-fstat","description":"Enables the fstat command without any pre-configured scope.","commands":{"allow":["fstat"],"deny":[]}},"allow-ftruncate":{"identifier":"allow-ftruncate","description":"Enables the ftruncate command without any pre-configured scope.","commands":{"allow":["ftruncate"],"deny":[]}},"allow-lstat":{"identifier":"allow-lstat","description":"Enables the lstat command without any pre-configured scope.","commands":{"allow":["lstat"],"deny":[]}},"allow-mkdir":{"identifier":"allow-mkdir","description":"Enables the mkdir command without any pre-configured scope.","commands":{"allow":["mkdir"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-read":{"identifier":"allow-read","description":"Enables the read command without any pre-configured scope.","commands":{"allow":["read"],"deny":[]}},"allow-read-dir":{"identifier":"allow-read-dir","description":"Enables the read_dir command without any pre-configured scope.","commands":{"allow":["read_dir"],"deny":[]}},"allow-read-file":{"identifier":"allow-read-file","description":"Enables the read_file command without any pre-configured scope.","commands":{"allow":["read_file"],"deny":[]}},"allow-read-text-file":{"identifier":"allow-read-text-file","description":"Enables the read_text_file command without any pre-configured scope.","commands":{"allow":["read_text_file"],"deny":[]}},"allow-read-text-file-lines":{"identifier":"allow-read-text-file-lines","description":"Enables the read_text_file_lines command without any pre-configured scope.","commands":{"allow":["read_text_file_lines"],"deny":[]}},"allow-read-text-file-lines-next":{"identifier":"allow-read-text-file-lines-next","description":"Enables the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":["read_text_file_lines_next"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-rename":{"identifier":"allow-rename","description":"Enables the rename command without any pre-configured scope.","commands":{"allow":["rename"],"deny":[]}},"allow-seek":{"identifier":"allow-seek","description":"Enables the seek command without any pre-configured scope.","commands":{"allow":["seek"],"deny":[]}},"allow-stat":{"identifier":"allow-stat","description":"Enables the stat command without any pre-configured scope.","commands":{"allow":["stat"],"deny":[]}},"allow-truncate":{"identifier":"allow-truncate","description":"Enables the truncate command without any pre-configured scope.","commands":{"allow":["truncate"],"deny":[]}},"allow-unwatch":{"identifier":"allow-unwatch","description":"Enables the unwatch command without any pre-configured scope.","commands":{"allow":["unwatch"],"deny":[]}},"allow-watch":{"identifier":"allow-watch","description":"Enables the watch command without any pre-configured scope.","commands":{"allow":["watch"],"deny":[]}},"allow-write":{"identifier":"allow-write","description":"Enables the write command without any pre-configured scope.","commands":{"allow":["write"],"deny":[]}},"allow-write-file":{"identifier":"allow-write-file","description":"Enables the write_file command without any pre-configured scope.","commands":{"allow":["write_file"],"deny":[]}},"allow-write-text-file":{"identifier":"allow-write-text-file","description":"Enables the write_text_file command without any pre-configured scope.","commands":{"allow":["write_text_file"],"deny":[]}},"create-app-specific-dirs":{"identifier":"create-app-specific-dirs","description":"This permissions allows to create the application specific directories.\n","commands":{"allow":["mkdir","scope-app-index"],"deny":[]}},"deny-copy-file":{"identifier":"deny-copy-file","description":"Denies the copy_file command without any pre-configured scope.","commands":{"allow":[],"deny":["copy_file"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-exists":{"identifier":"deny-exists","description":"Denies the exists command without any pre-configured scope.","commands":{"allow":[],"deny":["exists"]}},"deny-fstat":{"identifier":"deny-fstat","description":"Denies the fstat command without any pre-configured scope.","commands":{"allow":[],"deny":["fstat"]}},"deny-ftruncate":{"identifier":"deny-ftruncate","description":"Denies the ftruncate command without any pre-configured scope.","commands":{"allow":[],"deny":["ftruncate"]}},"deny-lstat":{"identifier":"deny-lstat","description":"Denies the lstat command without any pre-configured scope.","commands":{"allow":[],"deny":["lstat"]}},"deny-mkdir":{"identifier":"deny-mkdir","description":"Denies the mkdir command without any pre-configured scope.","commands":{"allow":[],"deny":["mkdir"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-read":{"identifier":"deny-read","description":"Denies the read command without any pre-configured scope.","commands":{"allow":[],"deny":["read"]}},"deny-read-dir":{"identifier":"deny-read-dir","description":"Denies the read_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["read_dir"]}},"deny-read-file":{"identifier":"deny-read-file","description":"Denies the read_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_file"]}},"deny-read-text-file":{"identifier":"deny-read-text-file","description":"Denies the read_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file"]}},"deny-read-text-file-lines":{"identifier":"deny-read-text-file-lines","description":"Denies the read_text_file_lines command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines"]}},"deny-read-text-file-lines-next":{"identifier":"deny-read-text-file-lines-next","description":"Denies the read_text_file_lines_next command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text_file_lines_next"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-rename":{"identifier":"deny-rename","description":"Denies the rename command without any pre-configured scope.","commands":{"allow":[],"deny":["rename"]}},"deny-seek":{"identifier":"deny-seek","description":"Denies the seek command without any pre-configured scope.","commands":{"allow":[],"deny":["seek"]}},"deny-stat":{"identifier":"deny-stat","description":"Denies the stat command without any pre-configured scope.","commands":{"allow":[],"deny":["stat"]}},"deny-truncate":{"identifier":"deny-truncate","description":"Denies the truncate command without any pre-configured scope.","commands":{"allow":[],"deny":["truncate"]}},"deny-unwatch":{"identifier":"deny-unwatch","description":"Denies the unwatch command without any pre-configured scope.","commands":{"allow":[],"deny":["unwatch"]}},"deny-watch":{"identifier":"deny-watch","description":"Denies the watch command without any pre-configured scope.","commands":{"allow":[],"deny":["watch"]}},"deny-webview-data-linux":{"identifier":"deny-webview-data-linux","description":"This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-webview-data-windows":{"identifier":"deny-webview-data-windows","description":"This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.","commands":{"allow":[],"deny":[]}},"deny-write":{"identifier":"deny-write","description":"Denies the write command without any pre-configured scope.","commands":{"allow":[],"deny":["write"]}},"deny-write-file":{"identifier":"deny-write-file","description":"Denies the write_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_file"]}},"deny-write-text-file":{"identifier":"deny-write-text-file","description":"Denies the write_text_file command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text_file"]}},"read-all":{"identifier":"read-all","description":"This enables all read related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists","watch","unwatch"],"deny":[]}},"read-app-specific-dirs-recursive":{"identifier":"read-app-specific-dirs-recursive","description":"This permission allows recursive read functionality on the application\nspecific base directories. \n","commands":{"allow":["read_dir","read_file","read_text_file","read_text_file_lines","read_text_file_lines_next","exists","scope-app-recursive"],"deny":[]}},"read-dirs":{"identifier":"read-dirs","description":"This enables directory read and file metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"read-files":{"identifier":"read-files","description":"This enables file read related commands without any pre-configured accessible paths.","commands":{"allow":["read_file","read","open","read_text_file","read_text_file_lines","read_text_file_lines_next","seek","stat","lstat","fstat","exists"],"deny":[]}},"read-meta":{"identifier":"read-meta","description":"This enables all index or metadata related commands without any pre-configured accessible paths.","commands":{"allow":["read_dir","stat","lstat","fstat","exists"],"deny":[]}},"scope":{"identifier":"scope","description":"An empty permission you can use to modify the global scope.","commands":{"allow":[],"deny":[]}},"scope-app":{"identifier":"scope-app","description":"This scope permits access to all files and list content of top level directories in the application folders.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"},{"path":"$APPDATA"},{"path":"$APPDATA/*"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"},{"path":"$APPCACHE"},{"path":"$APPCACHE/*"},{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-app-index":{"identifier":"scope-app-index","description":"This scope permits to list all files and folders in the application directories.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPDATA"},{"path":"$APPLOCALDATA"},{"path":"$APPCACHE"},{"path":"$APPLOG"}]}},"scope-app-recursive":{"identifier":"scope-app-recursive","description":"This scope permits recursive access to the complete application folders, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"},{"path":"$APPDATA"},{"path":"$APPDATA/**"},{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"},{"path":"$APPCACHE"},{"path":"$APPCACHE/**"},{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-appcache":{"identifier":"scope-appcache","description":"This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/*"}]}},"scope-appcache-index":{"identifier":"scope-appcache-index","description":"This scope permits to list all files and folders in the `$APPCACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"}]}},"scope-appcache-recursive":{"identifier":"scope-appcache-recursive","description":"This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCACHE"},{"path":"$APPCACHE/**"}]}},"scope-appconfig":{"identifier":"scope-appconfig","description":"This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/*"}]}},"scope-appconfig-index":{"identifier":"scope-appconfig-index","description":"This scope permits to list all files and folders in the `$APPCONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"}]}},"scope-appconfig-recursive":{"identifier":"scope-appconfig-recursive","description":"This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPCONFIG"},{"path":"$APPCONFIG/**"}]}},"scope-appdata":{"identifier":"scope-appdata","description":"This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/*"}]}},"scope-appdata-index":{"identifier":"scope-appdata-index","description":"This scope permits to list all files and folders in the `$APPDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"}]}},"scope-appdata-recursive":{"identifier":"scope-appdata-recursive","description":"This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]}},"scope-applocaldata":{"identifier":"scope-applocaldata","description":"This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/*"}]}},"scope-applocaldata-index":{"identifier":"scope-applocaldata-index","description":"This scope permits to list all files and folders in the `$APPLOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"}]}},"scope-applocaldata-recursive":{"identifier":"scope-applocaldata-recursive","description":"This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOCALDATA"},{"path":"$APPLOCALDATA/**"}]}},"scope-applog":{"identifier":"scope-applog","description":"This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/*"}]}},"scope-applog-index":{"identifier":"scope-applog-index","description":"This scope permits to list all files and folders in the `$APPLOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"}]}},"scope-applog-recursive":{"identifier":"scope-applog-recursive","description":"This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$APPLOG"},{"path":"$APPLOG/**"}]}},"scope-audio":{"identifier":"scope-audio","description":"This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/*"}]}},"scope-audio-index":{"identifier":"scope-audio-index","description":"This scope permits to list all files and folders in the `$AUDIO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"}]}},"scope-audio-recursive":{"identifier":"scope-audio-recursive","description":"This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$AUDIO"},{"path":"$AUDIO/**"}]}},"scope-cache":{"identifier":"scope-cache","description":"This scope permits access to all files and list content of top level directories in the `$CACHE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/*"}]}},"scope-cache-index":{"identifier":"scope-cache-index","description":"This scope permits to list all files and folders in the `$CACHE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"}]}},"scope-cache-recursive":{"identifier":"scope-cache-recursive","description":"This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CACHE"},{"path":"$CACHE/**"}]}},"scope-config":{"identifier":"scope-config","description":"This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/*"}]}},"scope-config-index":{"identifier":"scope-config-index","description":"This scope permits to list all files and folders in the `$CONFIG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"}]}},"scope-config-recursive":{"identifier":"scope-config-recursive","description":"This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$CONFIG"},{"path":"$CONFIG/**"}]}},"scope-data":{"identifier":"scope-data","description":"This scope permits access to all files and list content of top level directories in the `$DATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/*"}]}},"scope-data-index":{"identifier":"scope-data-index","description":"This scope permits to list all files and folders in the `$DATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"}]}},"scope-data-recursive":{"identifier":"scope-data-recursive","description":"This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DATA"},{"path":"$DATA/**"}]}},"scope-desktop":{"identifier":"scope-desktop","description":"This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/*"}]}},"scope-desktop-index":{"identifier":"scope-desktop-index","description":"This scope permits to list all files and folders in the `$DESKTOP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"}]}},"scope-desktop-recursive":{"identifier":"scope-desktop-recursive","description":"This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DESKTOP"},{"path":"$DESKTOP/**"}]}},"scope-document":{"identifier":"scope-document","description":"This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/*"}]}},"scope-document-index":{"identifier":"scope-document-index","description":"This scope permits to list all files and folders in the `$DOCUMENT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"}]}},"scope-document-recursive":{"identifier":"scope-document-recursive","description":"This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOCUMENT"},{"path":"$DOCUMENT/**"}]}},"scope-download":{"identifier":"scope-download","description":"This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/*"}]}},"scope-download-index":{"identifier":"scope-download-index","description":"This scope permits to list all files and folders in the `$DOWNLOAD`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"}]}},"scope-download-recursive":{"identifier":"scope-download-recursive","description":"This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$DOWNLOAD"},{"path":"$DOWNLOAD/**"}]}},"scope-exe":{"identifier":"scope-exe","description":"This scope permits access to all files and list content of top level directories in the `$EXE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/*"}]}},"scope-exe-index":{"identifier":"scope-exe-index","description":"This scope permits to list all files and folders in the `$EXE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"}]}},"scope-exe-recursive":{"identifier":"scope-exe-recursive","description":"This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$EXE"},{"path":"$EXE/**"}]}},"scope-font":{"identifier":"scope-font","description":"This scope permits access to all files and list content of top level directories in the `$FONT` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/*"}]}},"scope-font-index":{"identifier":"scope-font-index","description":"This scope permits to list all files and folders in the `$FONT`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"}]}},"scope-font-recursive":{"identifier":"scope-font-recursive","description":"This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$FONT"},{"path":"$FONT/**"}]}},"scope-home":{"identifier":"scope-home","description":"This scope permits access to all files and list content of top level directories in the `$HOME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/*"}]}},"scope-home-index":{"identifier":"scope-home-index","description":"This scope permits to list all files and folders in the `$HOME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"}]}},"scope-home-recursive":{"identifier":"scope-home-recursive","description":"This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$HOME"},{"path":"$HOME/**"}]}},"scope-localdata":{"identifier":"scope-localdata","description":"This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/*"}]}},"scope-localdata-index":{"identifier":"scope-localdata-index","description":"This scope permits to list all files and folders in the `$LOCALDATA`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"}]}},"scope-localdata-recursive":{"identifier":"scope-localdata-recursive","description":"This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOCALDATA"},{"path":"$LOCALDATA/**"}]}},"scope-log":{"identifier":"scope-log","description":"This scope permits access to all files and list content of top level directories in the `$LOG` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/*"}]}},"scope-log-index":{"identifier":"scope-log-index","description":"This scope permits to list all files and folders in the `$LOG`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"}]}},"scope-log-recursive":{"identifier":"scope-log-recursive","description":"This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$LOG"},{"path":"$LOG/**"}]}},"scope-picture":{"identifier":"scope-picture","description":"This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/*"}]}},"scope-picture-index":{"identifier":"scope-picture-index","description":"This scope permits to list all files and folders in the `$PICTURE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"}]}},"scope-picture-recursive":{"identifier":"scope-picture-recursive","description":"This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PICTURE"},{"path":"$PICTURE/**"}]}},"scope-public":{"identifier":"scope-public","description":"This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/*"}]}},"scope-public-index":{"identifier":"scope-public-index","description":"This scope permits to list all files and folders in the `$PUBLIC`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"}]}},"scope-public-recursive":{"identifier":"scope-public-recursive","description":"This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$PUBLIC"},{"path":"$PUBLIC/**"}]}},"scope-resource":{"identifier":"scope-resource","description":"This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/*"}]}},"scope-resource-index":{"identifier":"scope-resource-index","description":"This scope permits to list all files and folders in the `$RESOURCE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"}]}},"scope-resource-recursive":{"identifier":"scope-resource-recursive","description":"This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RESOURCE"},{"path":"$RESOURCE/**"}]}},"scope-runtime":{"identifier":"scope-runtime","description":"This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/*"}]}},"scope-runtime-index":{"identifier":"scope-runtime-index","description":"This scope permits to list all files and folders in the `$RUNTIME`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"}]}},"scope-runtime-recursive":{"identifier":"scope-runtime-recursive","description":"This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$RUNTIME"},{"path":"$RUNTIME/**"}]}},"scope-temp":{"identifier":"scope-temp","description":"This scope permits access to all files and list content of top level directories in the `$TEMP` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/*"}]}},"scope-temp-index":{"identifier":"scope-temp-index","description":"This scope permits to list all files and folders in the `$TEMP`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"}]}},"scope-temp-recursive":{"identifier":"scope-temp-recursive","description":"This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMP"},{"path":"$TEMP/**"}]}},"scope-template":{"identifier":"scope-template","description":"This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/*"}]}},"scope-template-index":{"identifier":"scope-template-index","description":"This scope permits to list all files and folders in the `$TEMPLATE`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"}]}},"scope-template-recursive":{"identifier":"scope-template-recursive","description":"This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$TEMPLATE"},{"path":"$TEMPLATE/**"}]}},"scope-video":{"identifier":"scope-video","description":"This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/*"}]}},"scope-video-index":{"identifier":"scope-video-index","description":"This scope permits to list all files and folders in the `$VIDEO`folder.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"}]}},"scope-video-recursive":{"identifier":"scope-video-recursive","description":"This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"path":"$VIDEO"},{"path":"$VIDEO/**"}]}},"write-all":{"identifier":"write-all","description":"This enables all write related commands without any pre-configured accessible paths.","commands":{"allow":["mkdir","create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}},"write-files":{"identifier":"write-files","description":"This enables all file write related commands without any pre-configured accessible paths.","commands":{"allow":["create","copy_file","remove","rename","truncate","ftruncate","write","write_file","write_text_file"],"deny":[]}}},"permission_sets":{"allow-app-meta":{"identifier":"allow-app-meta","description":"This allows non-recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-index"]},"allow-app-meta-recursive":{"identifier":"allow-app-meta-recursive","description":"This allows full recursive read access to metadata of the application folders, including file listing and statistics.","permissions":["read-meta","scope-app-recursive"]},"allow-app-read":{"identifier":"allow-app-read","description":"This allows non-recursive read access to the application folders.","permissions":["read-all","scope-app"]},"allow-app-read-recursive":{"identifier":"allow-app-read-recursive","description":"This allows full recursive read access to the complete application folders, files and subdirectories.","permissions":["read-all","scope-app-recursive"]},"allow-app-write":{"identifier":"allow-app-write","description":"This allows non-recursive write access to the application folders.","permissions":["write-all","scope-app"]},"allow-app-write-recursive":{"identifier":"allow-app-write-recursive","description":"This allows full recursive write access to the complete application folders, files and subdirectories.","permissions":["write-all","scope-app-recursive"]},"allow-appcache-meta":{"identifier":"allow-appcache-meta","description":"This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-index"]},"allow-appcache-meta-recursive":{"identifier":"allow-appcache-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-appcache-recursive"]},"allow-appcache-read":{"identifier":"allow-appcache-read","description":"This allows non-recursive read access to the `$APPCACHE` folder.","permissions":["read-all","scope-appcache"]},"allow-appcache-read-recursive":{"identifier":"allow-appcache-read-recursive","description":"This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["read-all","scope-appcache-recursive"]},"allow-appcache-write":{"identifier":"allow-appcache-write","description":"This allows non-recursive write access to the `$APPCACHE` folder.","permissions":["write-all","scope-appcache"]},"allow-appcache-write-recursive":{"identifier":"allow-appcache-write-recursive","description":"This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.","permissions":["write-all","scope-appcache-recursive"]},"allow-appconfig-meta":{"identifier":"allow-appconfig-meta","description":"This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-index"]},"allow-appconfig-meta-recursive":{"identifier":"allow-appconfig-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-appconfig-recursive"]},"allow-appconfig-read":{"identifier":"allow-appconfig-read","description":"This allows non-recursive read access to the `$APPCONFIG` folder.","permissions":["read-all","scope-appconfig"]},"allow-appconfig-read-recursive":{"identifier":"allow-appconfig-read-recursive","description":"This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["read-all","scope-appconfig-recursive"]},"allow-appconfig-write":{"identifier":"allow-appconfig-write","description":"This allows non-recursive write access to the `$APPCONFIG` folder.","permissions":["write-all","scope-appconfig"]},"allow-appconfig-write-recursive":{"identifier":"allow-appconfig-write-recursive","description":"This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.","permissions":["write-all","scope-appconfig-recursive"]},"allow-appdata-meta":{"identifier":"allow-appdata-meta","description":"This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-index"]},"allow-appdata-meta-recursive":{"identifier":"allow-appdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-appdata-recursive"]},"allow-appdata-read":{"identifier":"allow-appdata-read","description":"This allows non-recursive read access to the `$APPDATA` folder.","permissions":["read-all","scope-appdata"]},"allow-appdata-read-recursive":{"identifier":"allow-appdata-read-recursive","description":"This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["read-all","scope-appdata-recursive"]},"allow-appdata-write":{"identifier":"allow-appdata-write","description":"This allows non-recursive write access to the `$APPDATA` folder.","permissions":["write-all","scope-appdata"]},"allow-appdata-write-recursive":{"identifier":"allow-appdata-write-recursive","description":"This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.","permissions":["write-all","scope-appdata-recursive"]},"allow-applocaldata-meta":{"identifier":"allow-applocaldata-meta","description":"This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-index"]},"allow-applocaldata-meta-recursive":{"identifier":"allow-applocaldata-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-applocaldata-recursive"]},"allow-applocaldata-read":{"identifier":"allow-applocaldata-read","description":"This allows non-recursive read access to the `$APPLOCALDATA` folder.","permissions":["read-all","scope-applocaldata"]},"allow-applocaldata-read-recursive":{"identifier":"allow-applocaldata-read-recursive","description":"This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-applocaldata-recursive"]},"allow-applocaldata-write":{"identifier":"allow-applocaldata-write","description":"This allows non-recursive write access to the `$APPLOCALDATA` folder.","permissions":["write-all","scope-applocaldata"]},"allow-applocaldata-write-recursive":{"identifier":"allow-applocaldata-write-recursive","description":"This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-applocaldata-recursive"]},"allow-applog-meta":{"identifier":"allow-applog-meta","description":"This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-index"]},"allow-applog-meta-recursive":{"identifier":"allow-applog-meta-recursive","description":"This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.","permissions":["read-meta","scope-applog-recursive"]},"allow-applog-read":{"identifier":"allow-applog-read","description":"This allows non-recursive read access to the `$APPLOG` folder.","permissions":["read-all","scope-applog"]},"allow-applog-read-recursive":{"identifier":"allow-applog-read-recursive","description":"This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["read-all","scope-applog-recursive"]},"allow-applog-write":{"identifier":"allow-applog-write","description":"This allows non-recursive write access to the `$APPLOG` folder.","permissions":["write-all","scope-applog"]},"allow-applog-write-recursive":{"identifier":"allow-applog-write-recursive","description":"This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.","permissions":["write-all","scope-applog-recursive"]},"allow-audio-meta":{"identifier":"allow-audio-meta","description":"This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-index"]},"allow-audio-meta-recursive":{"identifier":"allow-audio-meta-recursive","description":"This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.","permissions":["read-meta","scope-audio-recursive"]},"allow-audio-read":{"identifier":"allow-audio-read","description":"This allows non-recursive read access to the `$AUDIO` folder.","permissions":["read-all","scope-audio"]},"allow-audio-read-recursive":{"identifier":"allow-audio-read-recursive","description":"This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["read-all","scope-audio-recursive"]},"allow-audio-write":{"identifier":"allow-audio-write","description":"This allows non-recursive write access to the `$AUDIO` folder.","permissions":["write-all","scope-audio"]},"allow-audio-write-recursive":{"identifier":"allow-audio-write-recursive","description":"This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.","permissions":["write-all","scope-audio-recursive"]},"allow-cache-meta":{"identifier":"allow-cache-meta","description":"This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-index"]},"allow-cache-meta-recursive":{"identifier":"allow-cache-meta-recursive","description":"This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.","permissions":["read-meta","scope-cache-recursive"]},"allow-cache-read":{"identifier":"allow-cache-read","description":"This allows non-recursive read access to the `$CACHE` folder.","permissions":["read-all","scope-cache"]},"allow-cache-read-recursive":{"identifier":"allow-cache-read-recursive","description":"This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.","permissions":["read-all","scope-cache-recursive"]},"allow-cache-write":{"identifier":"allow-cache-write","description":"This allows non-recursive write access to the `$CACHE` folder.","permissions":["write-all","scope-cache"]},"allow-cache-write-recursive":{"identifier":"allow-cache-write-recursive","description":"This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.","permissions":["write-all","scope-cache-recursive"]},"allow-config-meta":{"identifier":"allow-config-meta","description":"This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-index"]},"allow-config-meta-recursive":{"identifier":"allow-config-meta-recursive","description":"This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.","permissions":["read-meta","scope-config-recursive"]},"allow-config-read":{"identifier":"allow-config-read","description":"This allows non-recursive read access to the `$CONFIG` folder.","permissions":["read-all","scope-config"]},"allow-config-read-recursive":{"identifier":"allow-config-read-recursive","description":"This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["read-all","scope-config-recursive"]},"allow-config-write":{"identifier":"allow-config-write","description":"This allows non-recursive write access to the `$CONFIG` folder.","permissions":["write-all","scope-config"]},"allow-config-write-recursive":{"identifier":"allow-config-write-recursive","description":"This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.","permissions":["write-all","scope-config-recursive"]},"allow-data-meta":{"identifier":"allow-data-meta","description":"This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-index"]},"allow-data-meta-recursive":{"identifier":"allow-data-meta-recursive","description":"This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.","permissions":["read-meta","scope-data-recursive"]},"allow-data-read":{"identifier":"allow-data-read","description":"This allows non-recursive read access to the `$DATA` folder.","permissions":["read-all","scope-data"]},"allow-data-read-recursive":{"identifier":"allow-data-read-recursive","description":"This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.","permissions":["read-all","scope-data-recursive"]},"allow-data-write":{"identifier":"allow-data-write","description":"This allows non-recursive write access to the `$DATA` folder.","permissions":["write-all","scope-data"]},"allow-data-write-recursive":{"identifier":"allow-data-write-recursive","description":"This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.","permissions":["write-all","scope-data-recursive"]},"allow-desktop-meta":{"identifier":"allow-desktop-meta","description":"This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-index"]},"allow-desktop-meta-recursive":{"identifier":"allow-desktop-meta-recursive","description":"This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.","permissions":["read-meta","scope-desktop-recursive"]},"allow-desktop-read":{"identifier":"allow-desktop-read","description":"This allows non-recursive read access to the `$DESKTOP` folder.","permissions":["read-all","scope-desktop"]},"allow-desktop-read-recursive":{"identifier":"allow-desktop-read-recursive","description":"This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["read-all","scope-desktop-recursive"]},"allow-desktop-write":{"identifier":"allow-desktop-write","description":"This allows non-recursive write access to the `$DESKTOP` folder.","permissions":["write-all","scope-desktop"]},"allow-desktop-write-recursive":{"identifier":"allow-desktop-write-recursive","description":"This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.","permissions":["write-all","scope-desktop-recursive"]},"allow-document-meta":{"identifier":"allow-document-meta","description":"This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-index"]},"allow-document-meta-recursive":{"identifier":"allow-document-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.","permissions":["read-meta","scope-document-recursive"]},"allow-document-read":{"identifier":"allow-document-read","description":"This allows non-recursive read access to the `$DOCUMENT` folder.","permissions":["read-all","scope-document"]},"allow-document-read-recursive":{"identifier":"allow-document-read-recursive","description":"This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["read-all","scope-document-recursive"]},"allow-document-write":{"identifier":"allow-document-write","description":"This allows non-recursive write access to the `$DOCUMENT` folder.","permissions":["write-all","scope-document"]},"allow-document-write-recursive":{"identifier":"allow-document-write-recursive","description":"This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.","permissions":["write-all","scope-document-recursive"]},"allow-download-meta":{"identifier":"allow-download-meta","description":"This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-index"]},"allow-download-meta-recursive":{"identifier":"allow-download-meta-recursive","description":"This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.","permissions":["read-meta","scope-download-recursive"]},"allow-download-read":{"identifier":"allow-download-read","description":"This allows non-recursive read access to the `$DOWNLOAD` folder.","permissions":["read-all","scope-download"]},"allow-download-read-recursive":{"identifier":"allow-download-read-recursive","description":"This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["read-all","scope-download-recursive"]},"allow-download-write":{"identifier":"allow-download-write","description":"This allows non-recursive write access to the `$DOWNLOAD` folder.","permissions":["write-all","scope-download"]},"allow-download-write-recursive":{"identifier":"allow-download-write-recursive","description":"This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.","permissions":["write-all","scope-download-recursive"]},"allow-exe-meta":{"identifier":"allow-exe-meta","description":"This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-index"]},"allow-exe-meta-recursive":{"identifier":"allow-exe-meta-recursive","description":"This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.","permissions":["read-meta","scope-exe-recursive"]},"allow-exe-read":{"identifier":"allow-exe-read","description":"This allows non-recursive read access to the `$EXE` folder.","permissions":["read-all","scope-exe"]},"allow-exe-read-recursive":{"identifier":"allow-exe-read-recursive","description":"This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.","permissions":["read-all","scope-exe-recursive"]},"allow-exe-write":{"identifier":"allow-exe-write","description":"This allows non-recursive write access to the `$EXE` folder.","permissions":["write-all","scope-exe"]},"allow-exe-write-recursive":{"identifier":"allow-exe-write-recursive","description":"This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.","permissions":["write-all","scope-exe-recursive"]},"allow-font-meta":{"identifier":"allow-font-meta","description":"This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-index"]},"allow-font-meta-recursive":{"identifier":"allow-font-meta-recursive","description":"This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.","permissions":["read-meta","scope-font-recursive"]},"allow-font-read":{"identifier":"allow-font-read","description":"This allows non-recursive read access to the `$FONT` folder.","permissions":["read-all","scope-font"]},"allow-font-read-recursive":{"identifier":"allow-font-read-recursive","description":"This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.","permissions":["read-all","scope-font-recursive"]},"allow-font-write":{"identifier":"allow-font-write","description":"This allows non-recursive write access to the `$FONT` folder.","permissions":["write-all","scope-font"]},"allow-font-write-recursive":{"identifier":"allow-font-write-recursive","description":"This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.","permissions":["write-all","scope-font-recursive"]},"allow-home-meta":{"identifier":"allow-home-meta","description":"This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-index"]},"allow-home-meta-recursive":{"identifier":"allow-home-meta-recursive","description":"This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.","permissions":["read-meta","scope-home-recursive"]},"allow-home-read":{"identifier":"allow-home-read","description":"This allows non-recursive read access to the `$HOME` folder.","permissions":["read-all","scope-home"]},"allow-home-read-recursive":{"identifier":"allow-home-read-recursive","description":"This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.","permissions":["read-all","scope-home-recursive"]},"allow-home-write":{"identifier":"allow-home-write","description":"This allows non-recursive write access to the `$HOME` folder.","permissions":["write-all","scope-home"]},"allow-home-write-recursive":{"identifier":"allow-home-write-recursive","description":"This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.","permissions":["write-all","scope-home-recursive"]},"allow-localdata-meta":{"identifier":"allow-localdata-meta","description":"This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-index"]},"allow-localdata-meta-recursive":{"identifier":"allow-localdata-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.","permissions":["read-meta","scope-localdata-recursive"]},"allow-localdata-read":{"identifier":"allow-localdata-read","description":"This allows non-recursive read access to the `$LOCALDATA` folder.","permissions":["read-all","scope-localdata"]},"allow-localdata-read-recursive":{"identifier":"allow-localdata-read-recursive","description":"This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["read-all","scope-localdata-recursive"]},"allow-localdata-write":{"identifier":"allow-localdata-write","description":"This allows non-recursive write access to the `$LOCALDATA` folder.","permissions":["write-all","scope-localdata"]},"allow-localdata-write-recursive":{"identifier":"allow-localdata-write-recursive","description":"This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.","permissions":["write-all","scope-localdata-recursive"]},"allow-log-meta":{"identifier":"allow-log-meta","description":"This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-index"]},"allow-log-meta-recursive":{"identifier":"allow-log-meta-recursive","description":"This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.","permissions":["read-meta","scope-log-recursive"]},"allow-log-read":{"identifier":"allow-log-read","description":"This allows non-recursive read access to the `$LOG` folder.","permissions":["read-all","scope-log"]},"allow-log-read-recursive":{"identifier":"allow-log-read-recursive","description":"This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.","permissions":["read-all","scope-log-recursive"]},"allow-log-write":{"identifier":"allow-log-write","description":"This allows non-recursive write access to the `$LOG` folder.","permissions":["write-all","scope-log"]},"allow-log-write-recursive":{"identifier":"allow-log-write-recursive","description":"This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.","permissions":["write-all","scope-log-recursive"]},"allow-picture-meta":{"identifier":"allow-picture-meta","description":"This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-index"]},"allow-picture-meta-recursive":{"identifier":"allow-picture-meta-recursive","description":"This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.","permissions":["read-meta","scope-picture-recursive"]},"allow-picture-read":{"identifier":"allow-picture-read","description":"This allows non-recursive read access to the `$PICTURE` folder.","permissions":["read-all","scope-picture"]},"allow-picture-read-recursive":{"identifier":"allow-picture-read-recursive","description":"This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["read-all","scope-picture-recursive"]},"allow-picture-write":{"identifier":"allow-picture-write","description":"This allows non-recursive write access to the `$PICTURE` folder.","permissions":["write-all","scope-picture"]},"allow-picture-write-recursive":{"identifier":"allow-picture-write-recursive","description":"This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.","permissions":["write-all","scope-picture-recursive"]},"allow-public-meta":{"identifier":"allow-public-meta","description":"This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-index"]},"allow-public-meta-recursive":{"identifier":"allow-public-meta-recursive","description":"This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.","permissions":["read-meta","scope-public-recursive"]},"allow-public-read":{"identifier":"allow-public-read","description":"This allows non-recursive read access to the `$PUBLIC` folder.","permissions":["read-all","scope-public"]},"allow-public-read-recursive":{"identifier":"allow-public-read-recursive","description":"This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["read-all","scope-public-recursive"]},"allow-public-write":{"identifier":"allow-public-write","description":"This allows non-recursive write access to the `$PUBLIC` folder.","permissions":["write-all","scope-public"]},"allow-public-write-recursive":{"identifier":"allow-public-write-recursive","description":"This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.","permissions":["write-all","scope-public-recursive"]},"allow-resource-meta":{"identifier":"allow-resource-meta","description":"This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-index"]},"allow-resource-meta-recursive":{"identifier":"allow-resource-meta-recursive","description":"This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.","permissions":["read-meta","scope-resource-recursive"]},"allow-resource-read":{"identifier":"allow-resource-read","description":"This allows non-recursive read access to the `$RESOURCE` folder.","permissions":["read-all","scope-resource"]},"allow-resource-read-recursive":{"identifier":"allow-resource-read-recursive","description":"This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["read-all","scope-resource-recursive"]},"allow-resource-write":{"identifier":"allow-resource-write","description":"This allows non-recursive write access to the `$RESOURCE` folder.","permissions":["write-all","scope-resource"]},"allow-resource-write-recursive":{"identifier":"allow-resource-write-recursive","description":"This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.","permissions":["write-all","scope-resource-recursive"]},"allow-runtime-meta":{"identifier":"allow-runtime-meta","description":"This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-index"]},"allow-runtime-meta-recursive":{"identifier":"allow-runtime-meta-recursive","description":"This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.","permissions":["read-meta","scope-runtime-recursive"]},"allow-runtime-read":{"identifier":"allow-runtime-read","description":"This allows non-recursive read access to the `$RUNTIME` folder.","permissions":["read-all","scope-runtime"]},"allow-runtime-read-recursive":{"identifier":"allow-runtime-read-recursive","description":"This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["read-all","scope-runtime-recursive"]},"allow-runtime-write":{"identifier":"allow-runtime-write","description":"This allows non-recursive write access to the `$RUNTIME` folder.","permissions":["write-all","scope-runtime"]},"allow-runtime-write-recursive":{"identifier":"allow-runtime-write-recursive","description":"This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.","permissions":["write-all","scope-runtime-recursive"]},"allow-temp-meta":{"identifier":"allow-temp-meta","description":"This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-index"]},"allow-temp-meta-recursive":{"identifier":"allow-temp-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.","permissions":["read-meta","scope-temp-recursive"]},"allow-temp-read":{"identifier":"allow-temp-read","description":"This allows non-recursive read access to the `$TEMP` folder.","permissions":["read-all","scope-temp"]},"allow-temp-read-recursive":{"identifier":"allow-temp-read-recursive","description":"This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.","permissions":["read-all","scope-temp-recursive"]},"allow-temp-write":{"identifier":"allow-temp-write","description":"This allows non-recursive write access to the `$TEMP` folder.","permissions":["write-all","scope-temp"]},"allow-temp-write-recursive":{"identifier":"allow-temp-write-recursive","description":"This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.","permissions":["write-all","scope-temp-recursive"]},"allow-template-meta":{"identifier":"allow-template-meta","description":"This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-index"]},"allow-template-meta-recursive":{"identifier":"allow-template-meta-recursive","description":"This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.","permissions":["read-meta","scope-template-recursive"]},"allow-template-read":{"identifier":"allow-template-read","description":"This allows non-recursive read access to the `$TEMPLATE` folder.","permissions":["read-all","scope-template"]},"allow-template-read-recursive":{"identifier":"allow-template-read-recursive","description":"This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["read-all","scope-template-recursive"]},"allow-template-write":{"identifier":"allow-template-write","description":"This allows non-recursive write access to the `$TEMPLATE` folder.","permissions":["write-all","scope-template"]},"allow-template-write-recursive":{"identifier":"allow-template-write-recursive","description":"This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.","permissions":["write-all","scope-template-recursive"]},"allow-video-meta":{"identifier":"allow-video-meta","description":"This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-index"]},"allow-video-meta-recursive":{"identifier":"allow-video-meta-recursive","description":"This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.","permissions":["read-meta","scope-video-recursive"]},"allow-video-read":{"identifier":"allow-video-read","description":"This allows non-recursive read access to the `$VIDEO` folder.","permissions":["read-all","scope-video"]},"allow-video-read-recursive":{"identifier":"allow-video-read-recursive","description":"This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["read-all","scope-video-recursive"]},"allow-video-write":{"identifier":"allow-video-write","description":"This allows non-recursive write access to the `$VIDEO` folder.","permissions":["write-all","scope-video"]},"allow-video-write-recursive":{"identifier":"allow-video-write-recursive","description":"This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.","permissions":["write-all","scope-video-recursive"]},"deny-default":{"identifier":"deny-default","description":"This denies access to dangerous Tauri relevant files and folders by default.","permissions":["deny-webview-data-linux","deny-webview-data-windows"]}},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"FsScopeEntry","description":"FS scope entry.","anyOf":[{"description":"FS scope path.","type":"string"},{"type":"object","required":["path"],"properties":{"path":{"description":"FS scope path.","type":"string"}}}]}},"global-shortcut":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n","permissions":[]},"permissions":{"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-register-all":{"identifier":"allow-register-all","description":"Enables the register_all command without any pre-configured scope.","commands":{"allow":["register_all"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"allow-unregister-all":{"identifier":"allow-unregister-all","description":"Enables the unregister_all command without any pre-configured scope.","commands":{"allow":["unregister_all"],"deny":[]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-register-all":{"identifier":"deny-register-all","description":"Denies the register_all command without any pre-configured scope.","commands":{"allow":[],"deny":["register_all"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}},"deny-unregister-all":{"identifier":"deny-unregister-all","description":"Denies the unregister_all command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister_all"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"HttpScopeEntry","description":"HTTP scope entry.","anyOf":[{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},{"type":"object","required":["url"],"properties":{"url":{"description":"A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}}}]}},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"OpenerScopeEntry","description":"Opener scope entry.","anyOf":[{"type":"object","required":["url"],"properties":{"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"},"app":{"description":"An application to open this url with, for example: firefox.","allOf":[{"$ref":"#/definitions/Application"}]}}},{"type":"object","required":["path"],"properties":{"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"app":{"description":"An application to open this path with, for example: xdg-open.","allOf":[{"$ref":"#/definitions/Application"}]}}}],"definitions":{"Application":{"description":"Opener scope application.","anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}]}}}},"os":{"default_permission":{"identifier":"default","description":"This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n","permissions":["allow-arch","allow-exe-extension","allow-family","allow-locale","allow-os-type","allow-platform","allow-version"]},"permissions":{"allow-arch":{"identifier":"allow-arch","description":"Enables the arch command without any pre-configured scope.","commands":{"allow":["arch"],"deny":[]}},"allow-exe-extension":{"identifier":"allow-exe-extension","description":"Enables the exe_extension command without any pre-configured scope.","commands":{"allow":["exe_extension"],"deny":[]}},"allow-family":{"identifier":"allow-family","description":"Enables the family command without any pre-configured scope.","commands":{"allow":["family"],"deny":[]}},"allow-hostname":{"identifier":"allow-hostname","description":"Enables the hostname command without any pre-configured scope.","commands":{"allow":["hostname"],"deny":[]}},"allow-locale":{"identifier":"allow-locale","description":"Enables the locale command without any pre-configured scope.","commands":{"allow":["locale"],"deny":[]}},"allow-os-type":{"identifier":"allow-os-type","description":"Enables the os_type command without any pre-configured scope.","commands":{"allow":["os_type"],"deny":[]}},"allow-platform":{"identifier":"allow-platform","description":"Enables the platform command without any pre-configured scope.","commands":{"allow":["platform"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-arch":{"identifier":"deny-arch","description":"Denies the arch command without any pre-configured scope.","commands":{"allow":[],"deny":["arch"]}},"deny-exe-extension":{"identifier":"deny-exe-extension","description":"Denies the exe_extension command without any pre-configured scope.","commands":{"allow":[],"deny":["exe_extension"]}},"deny-family":{"identifier":"deny-family","description":"Denies the family command without any pre-configured scope.","commands":{"allow":[],"deny":["family"]}},"deny-hostname":{"identifier":"deny-hostname","description":"Denies the hostname command without any pre-configured scope.","commands":{"allow":[],"deny":["hostname"]}},"deny-locale":{"identifier":"deny-locale","description":"Denies the locale command without any pre-configured scope.","commands":{"allow":[],"deny":["locale"]}},"deny-os-type":{"identifier":"deny-os-type","description":"Denies the os_type command without any pre-configured scope.","commands":{"allow":[],"deny":["os_type"]}},"deny-platform":{"identifier":"deny-platform","description":"Denies the platform command without any pre-configured scope.","commands":{"allow":[],"deny":["platform"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"positioner":{"default_permission":{"identifier":"default","description":"Allows the moveWindow and handleIconState APIs","permissions":["allow-move-window","set-tray-icon-state"]},"permissions":{"allow-move-window":{"identifier":"allow-move-window","description":"Enables the move_window command without any pre-configured scope.","commands":{"allow":["move_window"],"deny":[]}},"allow-set-tray-icon-state":{"identifier":"allow-set-tray-icon-state","description":"Enables the set_tray_icon_state command without any pre-configured scope.","commands":{"allow":["set_tray_icon_state"],"deny":[]}},"deny-move-window":{"identifier":"deny-move-window","description":"Denies the move_window command without any pre-configured scope.","commands":{"allow":[],"deny":["move_window"]}},"deny-set-tray-icon-state":{"identifier":"deny-set-tray-icon-state","description":"Denies the set_tray_icon_state command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tray_icon_state"]}}},"permission_sets":{},"global_scope_schema":null},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ShellScopeEntry","description":"Shell scope entry.","anyOf":[{"type":"object","required":["cmd","name"],"properties":{"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"args":{"description":"The allowed arguments for the command execution.","allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}]}},"additionalProperties":false},{"type":"object","required":["name","sidecar"],"properties":{"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"args":{"description":"The allowed arguments for the command execution.","allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}]},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"additionalProperties":false}],"definitions":{"ShellScopeEntryAllowedArgs":{"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.","anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","type":"array","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"}}]},"ShellScopeEntryAllowedArg":{"description":"A command argument allowed to be executed by the webview API.","anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"description":"A variable that is set while calling the command from the webview API.","type":"object","required":["validator"],"properties":{"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"},"raw":{"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","default":false,"type":"boolean"}},"additionalProperties":false}]}}}},"updater":{"default_permission":{"identifier":"default","description":"This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n","permissions":["allow-check","allow-download","allow-install","allow-download-and-install"]},"permissions":{"allow-check":{"identifier":"allow-check","description":"Enables the check command without any pre-configured scope.","commands":{"allow":["check"],"deny":[]}},"allow-download":{"identifier":"allow-download","description":"Enables the download command without any pre-configured scope.","commands":{"allow":["download"],"deny":[]}},"allow-download-and-install":{"identifier":"allow-download-and-install","description":"Enables the download_and_install command without any pre-configured scope.","commands":{"allow":["download_and_install"],"deny":[]}},"allow-install":{"identifier":"allow-install","description":"Enables the install command without any pre-configured scope.","commands":{"allow":["install"],"deny":[]}},"deny-check":{"identifier":"deny-check","description":"Denies the check command without any pre-configured scope.","commands":{"allow":[],"deny":["check"]}},"deny-download":{"identifier":"deny-download","description":"Denies the download command without any pre-configured scope.","commands":{"allow":[],"deny":["download"]}},"deny-download-and-install":{"identifier":"deny-download-and-install","description":"Denies the download_and_install command without any pre-configured scope.","commands":{"allow":[],"deny":["download_and_install"]}},"deny-install":{"identifier":"deny-install","description":"Denies the install command without any pre-configured scope.","commands":{"allow":[],"deny":["install"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/ui/src-tauri/gen/schemas/desktop-schema.json b/ui/src-tauri/gen/schemas/desktop-schema.json index 3fb73228c..9030ba21e 100644 --- a/ui/src-tauri/gen/schemas/desktop-schema.json +++ b/ui/src-tauri/gen/schemas/desktop-schema.json @@ -37,7 +37,7 @@ ], "definitions": { "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", "type": "object", "required": [ "identifier", @@ -49,7 +49,7 @@ "type": "string" }, "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", "default": "", "type": "string" }, @@ -70,14 +70,14 @@ "type": "boolean" }, "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", "type": "array", "items": { "type": "string" } }, "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", "type": "array", "items": { "type": "string" @@ -140,1434 +140,1720 @@ "identifier": { "anyOf": [ { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", "type": "string", - "const": "fs:default" + "const": "fs:default", + "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" }, { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`", "type": "string", - "const": "fs:allow-app-meta" + "const": "fs:allow-app-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`" }, { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-meta-recursive" + "const": "fs:allow-app-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-read" + "const": "fs:allow-app-read", + "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`" }, { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-read-recursive" + "const": "fs:allow-app-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-write" + "const": "fs:allow-app-write", + "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`" }, { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-write-recursive" + "const": "fs:allow-app-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`", "type": "string", - "const": "fs:allow-appcache-meta" + "const": "fs:allow-appcache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-meta-recursive" + "const": "fs:allow-appcache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-read" + "const": "fs:allow-appcache-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-read-recursive" + "const": "fs:allow-appcache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-write" + "const": "fs:allow-appcache-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-write-recursive" + "const": "fs:allow-appcache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`", "type": "string", - "const": "fs:allow-appconfig-meta" + "const": "fs:allow-appconfig-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-meta-recursive" + "const": "fs:allow-appconfig-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-read" + "const": "fs:allow-appconfig-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-read-recursive" + "const": "fs:allow-appconfig-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-write" + "const": "fs:allow-appconfig-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-write-recursive" + "const": "fs:allow-appconfig-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`", "type": "string", - "const": "fs:allow-appdata-meta" + "const": "fs:allow-appdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-meta-recursive" + "const": "fs:allow-appdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-read" + "const": "fs:allow-appdata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-read-recursive" + "const": "fs:allow-appdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-write" + "const": "fs:allow-appdata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-write-recursive" + "const": "fs:allow-appdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`", "type": "string", - "const": "fs:allow-applocaldata-meta" + "const": "fs:allow-applocaldata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" + "const": "fs:allow-applocaldata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-read" + "const": "fs:allow-applocaldata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-read-recursive" + "const": "fs:allow-applocaldata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-write" + "const": "fs:allow-applocaldata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-write-recursive" + "const": "fs:allow-applocaldata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`", "type": "string", - "const": "fs:allow-applog-meta" + "const": "fs:allow-applog-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-meta-recursive" + "const": "fs:allow-applog-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-read" + "const": "fs:allow-applog-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`" }, { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-read-recursive" + "const": "fs:allow-applog-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-write" + "const": "fs:allow-applog-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`" }, { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-write-recursive" + "const": "fs:allow-applog-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`", "type": "string", - "const": "fs:allow-audio-meta" + "const": "fs:allow-audio-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`" }, { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-meta-recursive" + "const": "fs:allow-audio-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-read" + "const": "fs:allow-audio-read", + "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`" }, { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-read-recursive" + "const": "fs:allow-audio-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-write" + "const": "fs:allow-audio-write", + "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`" }, { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-write-recursive" + "const": "fs:allow-audio-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`", "type": "string", - "const": "fs:allow-cache-meta" + "const": "fs:allow-cache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-meta-recursive" + "const": "fs:allow-cache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-read" + "const": "fs:allow-cache-read", + "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`" }, { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-read-recursive" + "const": "fs:allow-cache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-write" + "const": "fs:allow-cache-write", + "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`" }, { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-write-recursive" + "const": "fs:allow-cache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`", "type": "string", - "const": "fs:allow-config-meta" + "const": "fs:allow-config-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-meta-recursive" + "const": "fs:allow-config-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-read" + "const": "fs:allow-config-read", + "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`" }, { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-read-recursive" + "const": "fs:allow-config-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-write" + "const": "fs:allow-config-write", + "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`" }, { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-write-recursive" + "const": "fs:allow-config-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`", "type": "string", - "const": "fs:allow-data-meta" + "const": "fs:allow-data-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-meta-recursive" + "const": "fs:allow-data-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-read" + "const": "fs:allow-data-read", + "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`" }, { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-read-recursive" + "const": "fs:allow-data-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-write" + "const": "fs:allow-data-write", + "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`" }, { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-write-recursive" + "const": "fs:allow-data-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`", "type": "string", - "const": "fs:allow-desktop-meta" + "const": "fs:allow-desktop-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-meta-recursive" + "const": "fs:allow-desktop-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-read" + "const": "fs:allow-desktop-read", + "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-read-recursive" + "const": "fs:allow-desktop-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-write" + "const": "fs:allow-desktop-write", + "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-write-recursive" + "const": "fs:allow-desktop-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`", "type": "string", - "const": "fs:allow-document-meta" + "const": "fs:allow-document-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-meta-recursive" + "const": "fs:allow-document-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-read" + "const": "fs:allow-document-read", + "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`" }, { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-read-recursive" + "const": "fs:allow-document-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-write" + "const": "fs:allow-document-write", + "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`" }, { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-write-recursive" + "const": "fs:allow-document-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`", "type": "string", - "const": "fs:allow-download-meta" + "const": "fs:allow-download-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-meta-recursive" + "const": "fs:allow-download-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-read" + "const": "fs:allow-download-read", + "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`" }, { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-read-recursive" + "const": "fs:allow-download-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-write" + "const": "fs:allow-download-write", + "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`" }, { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-write-recursive" + "const": "fs:allow-download-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`", "type": "string", - "const": "fs:allow-exe-meta" + "const": "fs:allow-exe-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`" }, { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-meta-recursive" + "const": "fs:allow-exe-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-read" + "const": "fs:allow-exe-read", + "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`" }, { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-read-recursive" + "const": "fs:allow-exe-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-write" + "const": "fs:allow-exe-write", + "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`" }, { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-write-recursive" + "const": "fs:allow-exe-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`", "type": "string", - "const": "fs:allow-font-meta" + "const": "fs:allow-font-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`" }, { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-meta-recursive" + "const": "fs:allow-font-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-read" + "const": "fs:allow-font-read", + "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`" }, { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-read-recursive" + "const": "fs:allow-font-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-write" + "const": "fs:allow-font-write", + "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`" }, { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-write-recursive" + "const": "fs:allow-font-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`", "type": "string", - "const": "fs:allow-home-meta" + "const": "fs:allow-home-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`" }, { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-meta-recursive" + "const": "fs:allow-home-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-read" + "const": "fs:allow-home-read", + "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`" }, { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-read-recursive" + "const": "fs:allow-home-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-write" + "const": "fs:allow-home-write", + "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`" }, { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-write-recursive" + "const": "fs:allow-home-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`", "type": "string", - "const": "fs:allow-localdata-meta" + "const": "fs:allow-localdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-meta-recursive" + "const": "fs:allow-localdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-read" + "const": "fs:allow-localdata-read", + "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-read-recursive" + "const": "fs:allow-localdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-write" + "const": "fs:allow-localdata-write", + "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-write-recursive" + "const": "fs:allow-localdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`", "type": "string", - "const": "fs:allow-log-meta" + "const": "fs:allow-log-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-meta-recursive" + "const": "fs:allow-log-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-read" + "const": "fs:allow-log-read", + "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`" }, { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-read-recursive" + "const": "fs:allow-log-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-write" + "const": "fs:allow-log-write", + "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`" }, { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-write-recursive" + "const": "fs:allow-log-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`", "type": "string", - "const": "fs:allow-picture-meta" + "const": "fs:allow-picture-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-meta-recursive" + "const": "fs:allow-picture-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-read" + "const": "fs:allow-picture-read", + "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`" }, { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-read-recursive" + "const": "fs:allow-picture-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-write" + "const": "fs:allow-picture-write", + "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`" }, { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-write-recursive" + "const": "fs:allow-picture-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`", "type": "string", - "const": "fs:allow-public-meta" + "const": "fs:allow-public-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-meta-recursive" + "const": "fs:allow-public-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-read" + "const": "fs:allow-public-read", + "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`" }, { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-read-recursive" + "const": "fs:allow-public-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-write" + "const": "fs:allow-public-write", + "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`" }, { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-write-recursive" + "const": "fs:allow-public-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`", "type": "string", - "const": "fs:allow-resource-meta" + "const": "fs:allow-resource-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-meta-recursive" + "const": "fs:allow-resource-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-read" + "const": "fs:allow-resource-read", + "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`" }, { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-read-recursive" + "const": "fs:allow-resource-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-write" + "const": "fs:allow-resource-write", + "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`" }, { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-write-recursive" + "const": "fs:allow-resource-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`", "type": "string", - "const": "fs:allow-runtime-meta" + "const": "fs:allow-runtime-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-meta-recursive" + "const": "fs:allow-runtime-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-read" + "const": "fs:allow-runtime-read", + "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-read-recursive" + "const": "fs:allow-runtime-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-write" + "const": "fs:allow-runtime-write", + "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-write-recursive" + "const": "fs:allow-runtime-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`", "type": "string", - "const": "fs:allow-temp-meta" + "const": "fs:allow-temp-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-meta-recursive" + "const": "fs:allow-temp-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-read" + "const": "fs:allow-temp-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`" }, { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-read-recursive" + "const": "fs:allow-temp-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-write" + "const": "fs:allow-temp-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`" }, { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-write-recursive" + "const": "fs:allow-temp-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`", "type": "string", - "const": "fs:allow-template-meta" + "const": "fs:allow-template-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-meta-recursive" + "const": "fs:allow-template-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-read" + "const": "fs:allow-template-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`" }, { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-read-recursive" + "const": "fs:allow-template-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-write" + "const": "fs:allow-template-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`" }, { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-write-recursive" + "const": "fs:allow-template-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`", "type": "string", - "const": "fs:allow-video-meta" + "const": "fs:allow-video-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`" }, { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-meta-recursive" + "const": "fs:allow-video-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-read" + "const": "fs:allow-video-read", + "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`" }, { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-read-recursive" + "const": "fs:allow-video-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-write" + "const": "fs:allow-video-write", + "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`" }, { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-write-recursive" + "const": "fs:allow-video-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`" }, { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`", "type": "string", - "const": "fs:deny-default" + "const": "fs:deny-default", + "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`" }, { "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-copy-file" + "const": "fs:allow-copy-file", + "markdownDescription": "Enables the copy_file command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "fs:allow-create" + "const": "fs:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "const": "fs:allow-exists" + "const": "fs:allow-exists", + "markdownDescription": "Enables the exists command without any pre-configured scope." }, { "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-fstat" + "const": "fs:allow-fstat", + "markdownDescription": "Enables the fstat command without any pre-configured scope." }, { "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-ftruncate" + "const": "fs:allow-ftruncate", + "markdownDescription": "Enables the ftruncate command without any pre-configured scope." }, { "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-lstat" + "const": "fs:allow-lstat", + "markdownDescription": "Enables the lstat command without any pre-configured scope." }, { "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-mkdir" + "const": "fs:allow-mkdir", + "markdownDescription": "Enables the mkdir command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "fs:allow-open" + "const": "fs:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the read command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read" + "const": "fs:allow-read", + "markdownDescription": "Enables the read command without any pre-configured scope." }, { "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-dir" + "const": "fs:allow-read-dir", + "markdownDescription": "Enables the read_dir command without any pre-configured scope." }, { "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-file" + "const": "fs:allow-read-file", + "markdownDescription": "Enables the read_file command without any pre-configured scope." }, { "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file" + "const": "fs:allow-read-text-file", + "markdownDescription": "Enables the read_text_file command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines" + "const": "fs:allow-read-text-file-lines", + "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines-next" + "const": "fs:allow-read-text-file-lines-next", + "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "fs:allow-remove" + "const": "fs:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "const": "fs:allow-rename" + "const": "fs:allow-rename", + "markdownDescription": "Enables the rename command without any pre-configured scope." }, { "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "const": "fs:allow-seek" + "const": "fs:allow-seek", + "markdownDescription": "Enables the seek command without any pre-configured scope." }, { "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-stat" + "const": "fs:allow-stat", + "markdownDescription": "Enables the stat command without any pre-configured scope." }, { "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-truncate" + "const": "fs:allow-truncate", + "markdownDescription": "Enables the truncate command without any pre-configured scope." }, { "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-unwatch" + "const": "fs:allow-unwatch", + "markdownDescription": "Enables the unwatch command without any pre-configured scope." }, { "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-watch" + "const": "fs:allow-watch", + "markdownDescription": "Enables the watch command without any pre-configured scope." }, { "description": "Enables the write command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write" + "const": "fs:allow-write", + "markdownDescription": "Enables the write command without any pre-configured scope." }, { "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-file" + "const": "fs:allow-write-file", + "markdownDescription": "Enables the write_file command without any pre-configured scope." }, { "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-text-file" + "const": "fs:allow-write-text-file", + "markdownDescription": "Enables the write_text_file command without any pre-configured scope." }, { "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "const": "fs:create-app-specific-dirs" + "const": "fs:create-app-specific-dirs", + "markdownDescription": "This permissions allows to create the application specific directories.\n" }, { "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-copy-file" + "const": "fs:deny-copy-file", + "markdownDescription": "Denies the copy_file command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "fs:deny-create" + "const": "fs:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "const": "fs:deny-exists" + "const": "fs:deny-exists", + "markdownDescription": "Denies the exists command without any pre-configured scope." }, { "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-fstat" + "const": "fs:deny-fstat", + "markdownDescription": "Denies the fstat command without any pre-configured scope." }, { "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-ftruncate" + "const": "fs:deny-ftruncate", + "markdownDescription": "Denies the ftruncate command without any pre-configured scope." }, { "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-lstat" + "const": "fs:deny-lstat", + "markdownDescription": "Denies the lstat command without any pre-configured scope." }, { "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-mkdir" + "const": "fs:deny-mkdir", + "markdownDescription": "Denies the mkdir command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "fs:deny-open" + "const": "fs:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the read command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read" + "const": "fs:deny-read", + "markdownDescription": "Denies the read command without any pre-configured scope." }, { "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-dir" + "const": "fs:deny-read-dir", + "markdownDescription": "Denies the read_dir command without any pre-configured scope." }, { "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-file" + "const": "fs:deny-read-file", + "markdownDescription": "Denies the read_file command without any pre-configured scope." }, { "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file" + "const": "fs:deny-read-text-file", + "markdownDescription": "Denies the read_text_file command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines" + "const": "fs:deny-read-text-file-lines", + "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines-next" + "const": "fs:deny-read-text-file-lines-next", + "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "fs:deny-remove" + "const": "fs:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "const": "fs:deny-rename" + "const": "fs:deny-rename", + "markdownDescription": "Denies the rename command without any pre-configured scope." }, { "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "const": "fs:deny-seek" + "const": "fs:deny-seek", + "markdownDescription": "Denies the seek command without any pre-configured scope." }, { "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-stat" + "const": "fs:deny-stat", + "markdownDescription": "Denies the stat command without any pre-configured scope." }, { "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-truncate" + "const": "fs:deny-truncate", + "markdownDescription": "Denies the truncate command without any pre-configured scope." }, { "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-unwatch" + "const": "fs:deny-unwatch", + "markdownDescription": "Denies the unwatch command without any pre-configured scope." }, { "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-watch" + "const": "fs:deny-watch", + "markdownDescription": "Denies the watch command without any pre-configured scope." }, { "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-linux" + "const": "fs:deny-webview-data-linux", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-windows" + "const": "fs:deny-webview-data-windows", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "Denies the write command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write" + "const": "fs:deny-write", + "markdownDescription": "Denies the write command without any pre-configured scope." }, { "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-file" + "const": "fs:deny-write-file", + "markdownDescription": "Denies the write_file command without any pre-configured scope." }, { "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-text-file" + "const": "fs:deny-write-text-file", + "markdownDescription": "Denies the write_text_file command without any pre-configured scope." }, { "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-all" + "const": "fs:read-all", + "markdownDescription": "This enables all read related commands without any pre-configured accessible paths." }, { "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "const": "fs:read-app-specific-dirs-recursive" + "const": "fs:read-app-specific-dirs-recursive", + "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n" }, { "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-dirs" + "const": "fs:read-dirs", + "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths." }, { "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-files" + "const": "fs:read-files", + "markdownDescription": "This enables file read related commands without any pre-configured accessible paths." }, { "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-meta" + "const": "fs:read-meta", + "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths." }, { "description": "An empty permission you can use to modify the global scope.", "type": "string", - "const": "fs:scope" + "const": "fs:scope", + "markdownDescription": "An empty permission you can use to modify the global scope." }, { "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "const": "fs:scope-app" + "const": "fs:scope-app", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders." }, { "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "const": "fs:scope-app-index" + "const": "fs:scope-app-index", + "markdownDescription": "This scope permits to list all files and folders in the application directories." }, { "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "const": "fs:scope-app-recursive" + "const": "fs:scope-app-recursive", + "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "const": "fs:scope-appcache" + "const": "fs:scope-appcache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "const": "fs:scope-appcache-index" + "const": "fs:scope-appcache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder." }, { "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appcache-recursive" + "const": "fs:scope-appcache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "const": "fs:scope-appconfig" + "const": "fs:scope-appconfig", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "const": "fs:scope-appconfig-index" + "const": "fs:scope-appconfig-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appconfig-recursive" + "const": "fs:scope-appconfig-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "const": "fs:scope-appdata" + "const": "fs:scope-appdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "const": "fs:scope-appdata-index" + "const": "fs:scope-appdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appdata-recursive" + "const": "fs:scope-appdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "const": "fs:scope-applocaldata" + "const": "fs:scope-applocaldata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "const": "fs:scope-applocaldata-index" + "const": "fs:scope-applocaldata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applocaldata-recursive" + "const": "fs:scope-applocaldata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "const": "fs:scope-applog" + "const": "fs:scope-applog", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "const": "fs:scope-applog-index" + "const": "fs:scope-applog-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applog-recursive" + "const": "fs:scope-applog-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "const": "fs:scope-audio" + "const": "fs:scope-audio", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder." }, { "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "const": "fs:scope-audio-index" + "const": "fs:scope-audio-index", + "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder." }, { "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-audio-recursive" + "const": "fs:scope-audio-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "const": "fs:scope-cache" + "const": "fs:scope-cache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "const": "fs:scope-cache-index" + "const": "fs:scope-cache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder." }, { "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-cache-recursive" + "const": "fs:scope-cache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "const": "fs:scope-config" + "const": "fs:scope-config", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "const": "fs:scope-config-index" + "const": "fs:scope-config-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-config-recursive" + "const": "fs:scope-config-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "const": "fs:scope-data" + "const": "fs:scope-data", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder." }, { "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "const": "fs:scope-data-index" + "const": "fs:scope-data-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder." }, { "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-data-recursive" + "const": "fs:scope-data-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "const": "fs:scope-desktop" + "const": "fs:scope-desktop", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder." }, { "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "const": "fs:scope-desktop-index" + "const": "fs:scope-desktop-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder." }, { "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-desktop-recursive" + "const": "fs:scope-desktop-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "const": "fs:scope-document" + "const": "fs:scope-document", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder." }, { "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "const": "fs:scope-document-index" + "const": "fs:scope-document-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder." }, { "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-document-recursive" + "const": "fs:scope-document-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "const": "fs:scope-download" + "const": "fs:scope-download", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder." }, { "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "const": "fs:scope-download-index" + "const": "fs:scope-download-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder." }, { "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-download-recursive" + "const": "fs:scope-download-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "const": "fs:scope-exe" + "const": "fs:scope-exe", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder." }, { "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "const": "fs:scope-exe-index" + "const": "fs:scope-exe-index", + "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder." }, { "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-exe-recursive" + "const": "fs:scope-exe-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "const": "fs:scope-font" + "const": "fs:scope-font", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder." }, { "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "const": "fs:scope-font-index" + "const": "fs:scope-font-index", + "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder." }, { "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-font-recursive" + "const": "fs:scope-font-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "const": "fs:scope-home" + "const": "fs:scope-home", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder." }, { "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "const": "fs:scope-home-index" + "const": "fs:scope-home-index", + "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder." }, { "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-home-recursive" + "const": "fs:scope-home-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "const": "fs:scope-localdata" + "const": "fs:scope-localdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "const": "fs:scope-localdata-index" + "const": "fs:scope-localdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-localdata-recursive" + "const": "fs:scope-localdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "const": "fs:scope-log" + "const": "fs:scope-log", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder." }, { "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "const": "fs:scope-log-index" + "const": "fs:scope-log-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder." }, { "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-log-recursive" + "const": "fs:scope-log-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "const": "fs:scope-picture" + "const": "fs:scope-picture", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder." }, { "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "const": "fs:scope-picture-index" + "const": "fs:scope-picture-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder." }, { "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-picture-recursive" + "const": "fs:scope-picture-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "const": "fs:scope-public" + "const": "fs:scope-public", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder." }, { "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "const": "fs:scope-public-index" + "const": "fs:scope-public-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder." }, { "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-public-recursive" + "const": "fs:scope-public-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "const": "fs:scope-resource" + "const": "fs:scope-resource", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder." }, { "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "const": "fs:scope-resource-index" + "const": "fs:scope-resource-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder." }, { "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-resource-recursive" + "const": "fs:scope-resource-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "const": "fs:scope-runtime" + "const": "fs:scope-runtime", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder." }, { "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "const": "fs:scope-runtime-index" + "const": "fs:scope-runtime-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder." }, { "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-runtime-recursive" + "const": "fs:scope-runtime-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "const": "fs:scope-temp" + "const": "fs:scope-temp", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "const": "fs:scope-temp-index" + "const": "fs:scope-temp-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder." }, { "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-temp-recursive" + "const": "fs:scope-temp-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "const": "fs:scope-template" + "const": "fs:scope-template", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "const": "fs:scope-template-index" + "const": "fs:scope-template-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder." }, { "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-template-recursive" + "const": "fs:scope-template-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "const": "fs:scope-video" + "const": "fs:scope-video", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder." }, { "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "const": "fs:scope-video-index" + "const": "fs:scope-video-index", + "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder." }, { "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-video-recursive" + "const": "fs:scope-video-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files." }, { "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-all" + "const": "fs:write-all", + "markdownDescription": "This enables all write related commands without any pre-configured accessible paths." }, { "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-files" + "const": "fs:write-files", + "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths." } ] } @@ -1642,49 +1928,58 @@ "identifier": { "anyOf": [ { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`", "type": "string", - "const": "http:default" + "const": "http:default", + "markdownDescription": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`" }, { "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch" + "const": "http:allow-fetch", + "markdownDescription": "Enables the fetch command without any pre-configured scope." }, { "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-cancel" + "const": "http:allow-fetch-cancel", + "markdownDescription": "Enables the fetch_cancel command without any pre-configured scope." }, { "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-read-body" + "const": "http:allow-fetch-read-body", + "markdownDescription": "Enables the fetch_read_body command without any pre-configured scope." }, { "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-send" + "const": "http:allow-fetch-send", + "markdownDescription": "Enables the fetch_send command without any pre-configured scope." }, { "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch" + "const": "http:deny-fetch", + "markdownDescription": "Denies the fetch command without any pre-configured scope." }, { "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-cancel" + "const": "http:deny-fetch-cancel", + "markdownDescription": "Denies the fetch_cancel command without any pre-configured scope." }, { "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-read-body" + "const": "http:deny-fetch-read-body", + "markdownDescription": "Denies the fetch_read_body command without any pre-configured scope." }, { "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-send" + "const": "http:deny-fetch-send", + "markdownDescription": "Denies the fetch_send command without any pre-configured scope." } ] } @@ -1759,44 +2054,52 @@ "identifier": { "anyOf": [ { - "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer", + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", "type": "string", - "const": "opener:default" + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" }, { "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", "type": "string", - "const": "opener:allow-default-urls" + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." }, { "description": "Enables the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-path" + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." }, { "description": "Enables the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-url" + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." }, { "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:allow-reveal-item-in-dir" + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." }, { "description": "Denies the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-path" + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." }, { "description": "Denies the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-url" + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." }, { "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:deny-reveal-item-in-dir" + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." } ] } @@ -1919,59 +2222,70 @@ "identifier": { "anyOf": [ { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", "type": "string", - "const": "shell:default" + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" }, { "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "const": "shell:allow-execute" + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." }, { "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "const": "shell:allow-kill" + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "shell:allow-open" + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:allow-spawn" + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." }, { "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:allow-stdin-write" + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." }, { "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "const": "shell:deny-execute" + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." }, { "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "const": "shell:deny-kill" + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "shell:deny-open" + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:deny-spawn" + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." }, { "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:deny-stdin-write" + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." } ] } @@ -2157,3572 +2471,4430 @@ { "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", "type": "string", - "const": "clipboard-manager:default" + "const": "clipboard-manager:default", + "markdownDescription": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n" }, { "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-clear" + "const": "clipboard-manager:allow-clear", + "markdownDescription": "Enables the clear command without any pre-configured scope." }, { "description": "Enables the read_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-read-image" + "const": "clipboard-manager:allow-read-image", + "markdownDescription": "Enables the read_image command without any pre-configured scope." }, { "description": "Enables the read_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-read-text" + "const": "clipboard-manager:allow-read-text", + "markdownDescription": "Enables the read_text command without any pre-configured scope." }, { "description": "Enables the write_html command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-html" + "const": "clipboard-manager:allow-write-html", + "markdownDescription": "Enables the write_html command without any pre-configured scope." }, { "description": "Enables the write_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-image" + "const": "clipboard-manager:allow-write-image", + "markdownDescription": "Enables the write_image command without any pre-configured scope." }, { "description": "Enables the write_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-text" + "const": "clipboard-manager:allow-write-text", + "markdownDescription": "Enables the write_text command without any pre-configured scope." }, { "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-clear" + "const": "clipboard-manager:deny-clear", + "markdownDescription": "Denies the clear command without any pre-configured scope." }, { "description": "Denies the read_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-read-image" + "const": "clipboard-manager:deny-read-image", + "markdownDescription": "Denies the read_image command without any pre-configured scope." }, { "description": "Denies the read_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-read-text" + "const": "clipboard-manager:deny-read-text", + "markdownDescription": "Denies the read_text command without any pre-configured scope." }, { "description": "Denies the write_html command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-html" + "const": "clipboard-manager:deny-write-html", + "markdownDescription": "Denies the write_html command without any pre-configured scope." }, { "description": "Denies the write_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-image" + "const": "clipboard-manager:deny-write-image", + "markdownDescription": "Denies the write_image command without any pre-configured scope." }, { "description": "Denies the write_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-text" + "const": "clipboard-manager:deny-write-text", + "markdownDescription": "Denies the write_text command without any pre-configured scope." }, { - "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", "type": "string", - "const": "core:default" + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", "type": "string", - "const": "core:app:default" + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" }, { "description": "Enables the app_hide command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-app-hide" + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." }, { "description": "Enables the app_show command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-app-show" + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." }, { "description": "Enables the default_window_icon command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-default-window-icon" + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." }, { "description": "Enables the name command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-name" + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." }, { "description": "Enables the set_app_theme command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-set-app-theme" + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." }, { "description": "Enables the tauri_version command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-tauri-version" + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." }, { "description": "Enables the version command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-version" + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." }, { "description": "Denies the app_hide command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-app-hide" + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." }, { "description": "Denies the app_show command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-app-show" + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." }, { "description": "Denies the default_window_icon command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-default-window-icon" + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." }, { "description": "Denies the name command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-name" + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." }, { "description": "Denies the set_app_theme command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-set-app-theme" + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." }, { "description": "Denies the tauri_version command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-tauri-version" + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." }, { "description": "Denies the version command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-version" + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", "type": "string", - "const": "core:event:default" + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" }, { "description": "Enables the emit command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-emit" + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." }, { "description": "Enables the emit_to command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-emit-to" + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." }, { "description": "Enables the listen command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-listen" + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." }, { "description": "Enables the unlisten command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-unlisten" + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." }, { "description": "Denies the emit command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-emit" + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." }, { "description": "Denies the emit_to command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-emit-to" + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." }, { "description": "Denies the listen command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-listen" + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." }, { "description": "Denies the unlisten command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-unlisten" + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", "type": "string", - "const": "core:image:default" + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" }, { "description": "Enables the from_bytes command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-from-bytes" + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." }, { "description": "Enables the from_path command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-from-path" + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-new" + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the rgba command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-rgba" + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." }, { "description": "Enables the size command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-size" + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." }, { "description": "Denies the from_bytes command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-from-bytes" + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." }, { "description": "Denies the from_path command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-from-path" + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-new" + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the rgba command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-rgba" + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." }, { "description": "Denies the size command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-size" + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", "type": "string", - "const": "core:menu:default" + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" }, { "description": "Enables the append command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-append" + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." }, { "description": "Enables the create_default command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-create-default" + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." }, { "description": "Enables the get command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-get" + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." }, { "description": "Enables the insert command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-insert" + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." }, { "description": "Enables the is_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-is-checked" + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." }, { "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-is-enabled" + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." }, { "description": "Enables the items command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-items" + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-new" + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the popup command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-popup" + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." }, { "description": "Enables the prepend command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-prepend" + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-remove" + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the remove_at command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-remove-at" + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." }, { "description": "Enables the set_accelerator command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-accelerator" + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." }, { "description": "Enables the set_as_app_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-app-menu" + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." }, { "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-help-menu-for-nsapp" + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." }, { "description": "Enables the set_as_window_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-window-menu" + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." }, { "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-windows-menu-for-nsapp" + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." }, { "description": "Enables the set_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-checked" + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." }, { "description": "Enables the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-enabled" + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-icon" + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_text command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-text" + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." }, { "description": "Enables the text command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-text" + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." }, { "description": "Denies the append command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-append" + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." }, { "description": "Denies the create_default command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-create-default" + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." }, { "description": "Denies the get command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-get" + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." }, { "description": "Denies the insert command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-insert" + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." }, { "description": "Denies the is_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-is-checked" + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." }, { "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-is-enabled" + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." }, { "description": "Denies the items command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-items" + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-new" + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the popup command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-popup" + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." }, { "description": "Denies the prepend command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-prepend" + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-remove" + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the remove_at command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-remove-at" + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." }, { "description": "Denies the set_accelerator command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-accelerator" + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." }, { "description": "Denies the set_as_app_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-app-menu" + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." }, { "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-help-menu-for-nsapp" + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." }, { "description": "Denies the set_as_window_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-window-menu" + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." }, { "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-windows-menu-for-nsapp" + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." }, { "description": "Denies the set_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-checked" + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." }, { "description": "Denies the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-enabled" + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-icon" + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_text command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-text" + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." }, { "description": "Denies the text command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-text" + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", "type": "string", - "const": "core:path:default" + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" }, { "description": "Enables the basename command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-basename" + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." }, { "description": "Enables the dirname command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-dirname" + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." }, { "description": "Enables the extname command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-extname" + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." }, { "description": "Enables the is_absolute command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-is-absolute" + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." }, { "description": "Enables the join command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-join" + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." }, { "description": "Enables the normalize command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-normalize" + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." }, { "description": "Enables the resolve command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-resolve" + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." }, { "description": "Enables the resolve_directory command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-resolve-directory" + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." }, { "description": "Denies the basename command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-basename" + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." }, { "description": "Denies the dirname command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-dirname" + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." }, { "description": "Denies the extname command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-extname" + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." }, { "description": "Denies the is_absolute command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-is-absolute" + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." }, { "description": "Denies the join command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-join" + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." }, { "description": "Denies the normalize command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-normalize" + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." }, { "description": "Denies the resolve command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-resolve" + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." }, { "description": "Denies the resolve_directory command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-resolve-directory" + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", "type": "string", - "const": "core:resources:default" + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" }, { "description": "Enables the close command without any pre-configured scope.", "type": "string", - "const": "core:resources:allow-close" + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." }, { "description": "Denies the close command without any pre-configured scope.", "type": "string", - "const": "core:resources:deny-close" + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`", "type": "string", - "const": "core:tray:default" + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`" }, { "description": "Enables the get_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-get-by-id" + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-new" + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the remove_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-remove-by-id" + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-icon" + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_icon_as_template command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-icon-as-template" + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." }, { "description": "Enables the set_menu command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-menu" + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." }, { "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-show-menu-on-left-click" + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." }, { "description": "Enables the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-temp-dir-path" + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." }, { "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-title" + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." }, { "description": "Enables the set_tooltip command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-tooltip" + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." }, { "description": "Enables the set_visible command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-visible" + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." }, { "description": "Denies the get_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-get-by-id" + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-new" + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the remove_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-remove-by-id" + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-icon" + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_icon_as_template command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-icon-as-template" + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." }, { "description": "Denies the set_menu command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-menu" + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." }, { "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-show-menu-on-left-click" + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." }, { "description": "Denies the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-temp-dir-path" + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." }, { "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-title" + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." }, { "description": "Denies the set_tooltip command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-tooltip" + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." }, { "description": "Denies the set_visible command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-visible" + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", "type": "string", - "const": "core:webview:default" + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" }, { "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-clear-all-browsing-data" + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." }, { "description": "Enables the create_webview command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-create-webview" + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." }, { "description": "Enables the create_webview_window command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-create-webview-window" + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." }, { "description": "Enables the get_all_webviews command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-get-all-webviews" + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." }, { "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-internal-toggle-devtools" + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." }, { "description": "Enables the print command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-print" + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." }, { "description": "Enables the reparent command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-reparent" + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." }, { "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-focus" + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." }, { "description": "Enables the set_webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-position" + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." }, { "description": "Enables the set_webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-size" + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." }, { "description": "Enables the set_webview_zoom command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-zoom" + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." }, { "description": "Enables the webview_close command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-close" + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." }, { "description": "Enables the webview_hide command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-hide" + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." }, { "description": "Enables the webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-position" + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." }, { "description": "Enables the webview_show command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-show" + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." }, { "description": "Enables the webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-size" + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." }, { "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-clear-all-browsing-data" + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." }, { "description": "Denies the create_webview command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-create-webview" + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." }, { "description": "Denies the create_webview_window command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-create-webview-window" + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." }, { "description": "Denies the get_all_webviews command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-get-all-webviews" + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." }, { "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-internal-toggle-devtools" + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." }, { "description": "Denies the print command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-print" + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." }, { "description": "Denies the reparent command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-reparent" + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." }, { "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-focus" + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." }, { "description": "Denies the set_webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-position" + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." }, { "description": "Denies the set_webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-size" + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." }, { "description": "Denies the set_webview_zoom command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-zoom" + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." }, { "description": "Denies the webview_close command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-close" + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." }, { "description": "Denies the webview_hide command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-hide" + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." }, { "description": "Denies the webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-position" + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." }, { "description": "Denies the webview_show command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-show" + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." }, { "description": "Denies the webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-size" + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`", "type": "string", - "const": "core:window:default" + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`" }, { "description": "Enables the available_monitors command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-available-monitors" + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." }, { "description": "Enables the center command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-center" + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." }, { "description": "Enables the close command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-close" + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-create" + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the current_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-current-monitor" + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." }, { "description": "Enables the cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-cursor-position" + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." }, { "description": "Enables the destroy command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-destroy" + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." }, { "description": "Enables the get_all_windows command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-get-all-windows" + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." }, { "description": "Enables the hide command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-hide" + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." }, { "description": "Enables the inner_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-inner-position" + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." }, { "description": "Enables the inner_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-inner-size" + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." }, { "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-internal-toggle-maximize" + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." }, { "description": "Enables the is_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-closable" + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." }, { "description": "Enables the is_decorated command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-decorated" + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." }, { "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-enabled" + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." }, { "description": "Enables the is_focused command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-focused" + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." }, { "description": "Enables the is_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-fullscreen" + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." }, { "description": "Enables the is_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-maximizable" + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." }, { "description": "Enables the is_maximized command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-maximized" + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." }, { "description": "Enables the is_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-minimizable" + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." }, { "description": "Enables the is_minimized command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-minimized" + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." }, { "description": "Enables the is_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-resizable" + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." }, { "description": "Enables the is_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-visible" + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." }, { "description": "Enables the maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-maximize" + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." }, { "description": "Enables the minimize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-minimize" + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." }, { "description": "Enables the monitor_from_point command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-monitor-from-point" + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." }, { "description": "Enables the outer_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-outer-position" + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." }, { "description": "Enables the outer_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-outer-size" + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." }, { "description": "Enables the primary_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-primary-monitor" + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." }, { "description": "Enables the request_user_attention command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-request-user-attention" + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." }, { "description": "Enables the scale_factor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-scale-factor" + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." }, { "description": "Enables the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-always-on-bottom" + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." }, { "description": "Enables the set_always_on_top command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-always-on-top" + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." }, { "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-closable" + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." }, { "description": "Enables the set_content_protected command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-content-protected" + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." }, { "description": "Enables the set_cursor_grab command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-grab" + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." }, { "description": "Enables the set_cursor_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-icon" + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." }, { "description": "Enables the set_cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-position" + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." }, { "description": "Enables the set_cursor_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-visible" + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." }, { "description": "Enables the set_decorations command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-decorations" + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." }, { "description": "Enables the set_effects command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-effects" + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." }, { "description": "Enables the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-enabled" + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." }, { "description": "Enables the set_focus command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-focus" + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." }, { "description": "Enables the set_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-fullscreen" + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-icon" + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-ignore-cursor-events" + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." }, { "description": "Enables the set_max_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-max-size" + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." }, { "description": "Enables the set_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-maximizable" + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." }, { "description": "Enables the set_min_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-min-size" + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." }, { "description": "Enables the set_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-minimizable" + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." }, { "description": "Enables the set_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-position" + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." }, { "description": "Enables the set_progress_bar command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-progress-bar" + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." }, { "description": "Enables the set_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-resizable" + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." }, { "description": "Enables the set_shadow command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-shadow" + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." }, { "description": "Enables the set_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-size" + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." }, { "description": "Enables the set_size_constraints command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-size-constraints" + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." }, { "description": "Enables the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-skip-taskbar" + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." }, { "description": "Enables the set_theme command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-theme" + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." }, { "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-title" + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." }, { "description": "Enables the set_title_bar_style command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-title-bar-style" + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." }, { "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-visible-on-all-workspaces" + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." }, { "description": "Enables the show command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-show" + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." }, { "description": "Enables the start_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-start-dragging" + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." }, { "description": "Enables the start_resize_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-start-resize-dragging" + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." }, { "description": "Enables the theme command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-theme" + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." }, { "description": "Enables the title command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-title" + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." }, { "description": "Enables the toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-toggle-maximize" + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." }, { "description": "Enables the unmaximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-unmaximize" + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." }, { "description": "Enables the unminimize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-unminimize" + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." }, { "description": "Denies the available_monitors command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-available-monitors" + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." }, { "description": "Denies the center command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-center" + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." }, { "description": "Denies the close command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-close" + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-create" + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the current_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-current-monitor" + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." }, { "description": "Denies the cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-cursor-position" + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." }, { "description": "Denies the destroy command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-destroy" + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." }, { "description": "Denies the get_all_windows command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-get-all-windows" + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." }, { "description": "Denies the hide command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-hide" + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." }, { "description": "Denies the inner_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-inner-position" + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." }, { "description": "Denies the inner_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-inner-size" + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." }, { "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-internal-toggle-maximize" + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." }, { "description": "Denies the is_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-closable" + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." }, { "description": "Denies the is_decorated command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-decorated" + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." }, { "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-enabled" + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." }, { "description": "Denies the is_focused command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-focused" + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." }, { "description": "Denies the is_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-fullscreen" + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." }, { "description": "Denies the is_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-maximizable" + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." }, { "description": "Denies the is_maximized command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-maximized" + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." }, { "description": "Denies the is_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-minimizable" + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." }, { "description": "Denies the is_minimized command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-minimized" + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." }, { "description": "Denies the is_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-resizable" + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." }, { "description": "Denies the is_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-visible" + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." }, { "description": "Denies the maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-maximize" + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." }, { "description": "Denies the minimize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-minimize" + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." }, { "description": "Denies the monitor_from_point command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-monitor-from-point" + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." }, { "description": "Denies the outer_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-outer-position" + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." }, { "description": "Denies the outer_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-outer-size" + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." }, { "description": "Denies the primary_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-primary-monitor" + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." }, { "description": "Denies the request_user_attention command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-request-user-attention" + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." }, { "description": "Denies the scale_factor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-scale-factor" + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." }, { "description": "Denies the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-always-on-bottom" + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." }, { "description": "Denies the set_always_on_top command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-always-on-top" + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." }, { "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-closable" + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." }, { "description": "Denies the set_content_protected command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-content-protected" + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." }, { "description": "Denies the set_cursor_grab command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-grab" + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." }, { "description": "Denies the set_cursor_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-icon" + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." }, { "description": "Denies the set_cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-position" + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." }, { "description": "Denies the set_cursor_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-visible" + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." }, { "description": "Denies the set_decorations command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-decorations" + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." }, { "description": "Denies the set_effects command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-effects" + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." }, { "description": "Denies the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-enabled" + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." }, { "description": "Denies the set_focus command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-focus" + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." }, { "description": "Denies the set_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-fullscreen" + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-icon" + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-ignore-cursor-events" + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." }, { "description": "Denies the set_max_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-max-size" + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." }, { "description": "Denies the set_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-maximizable" + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." }, { "description": "Denies the set_min_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-min-size" + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." }, { "description": "Denies the set_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-minimizable" + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." }, { "description": "Denies the set_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-position" + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." }, { "description": "Denies the set_progress_bar command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-progress-bar" + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." }, { "description": "Denies the set_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-resizable" + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." }, { "description": "Denies the set_shadow command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-shadow" + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." }, { "description": "Denies the set_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-size" + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." }, { "description": "Denies the set_size_constraints command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-size-constraints" + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." }, { "description": "Denies the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-skip-taskbar" + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." }, { "description": "Denies the set_theme command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-theme" + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." }, { "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-title" + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." }, { "description": "Denies the set_title_bar_style command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-title-bar-style" + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." }, { "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-visible-on-all-workspaces" + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." }, { "description": "Denies the show command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-show" + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." }, { "description": "Denies the start_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-start-dragging" + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." }, { "description": "Denies the start_resize_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-start-resize-dragging" + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." }, { "description": "Denies the theme command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-theme" + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." }, { "description": "Denies the title command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-title" + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." }, { "description": "Denies the toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-toggle-maximize" + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." }, { "description": "Denies the unmaximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-unmaximize" + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." }, { "description": "Denies the unminimize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-unminimize" + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." }, { - "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n\n#### This default permission set includes:\n\n- `allow-ask`\n- `allow-confirm`\n- `allow-message`\n- `allow-save`\n- `allow-open`", "type": "string", - "const": "dialog:default" + "const": "dialog:default", + "markdownDescription": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n\n#### This default permission set includes:\n\n- `allow-ask`\n- `allow-confirm`\n- `allow-message`\n- `allow-save`\n- `allow-open`" }, { "description": "Enables the ask command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-ask" + "const": "dialog:allow-ask", + "markdownDescription": "Enables the ask command without any pre-configured scope." }, { "description": "Enables the confirm command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-confirm" + "const": "dialog:allow-confirm", + "markdownDescription": "Enables the confirm command without any pre-configured scope." }, { "description": "Enables the message command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-message" + "const": "dialog:allow-message", + "markdownDescription": "Enables the message command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-open" + "const": "dialog:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the save command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-save" + "const": "dialog:allow-save", + "markdownDescription": "Enables the save command without any pre-configured scope." }, { "description": "Denies the ask command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-ask" + "const": "dialog:deny-ask", + "markdownDescription": "Denies the ask command without any pre-configured scope." }, { "description": "Denies the confirm command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-confirm" + "const": "dialog:deny-confirm", + "markdownDescription": "Denies the confirm command without any pre-configured scope." }, { "description": "Denies the message command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-message" + "const": "dialog:deny-message", + "markdownDescription": "Denies the message command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-open" + "const": "dialog:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the save command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-save" + "const": "dialog:deny-save", + "markdownDescription": "Denies the save command without any pre-configured scope." }, { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", "type": "string", - "const": "fs:default" + "const": "fs:default", + "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" }, { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`", "type": "string", - "const": "fs:allow-app-meta" + "const": "fs:allow-app-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`" }, { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-meta-recursive" + "const": "fs:allow-app-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-read" + "const": "fs:allow-app-read", + "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`" }, { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-read-recursive" + "const": "fs:allow-app-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-write" + "const": "fs:allow-app-write", + "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`" }, { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-write-recursive" + "const": "fs:allow-app-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`", "type": "string", - "const": "fs:allow-appcache-meta" + "const": "fs:allow-appcache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-meta-recursive" + "const": "fs:allow-appcache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-read" + "const": "fs:allow-appcache-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-read-recursive" + "const": "fs:allow-appcache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-write" + "const": "fs:allow-appcache-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-write-recursive" + "const": "fs:allow-appcache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`", "type": "string", - "const": "fs:allow-appconfig-meta" + "const": "fs:allow-appconfig-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-meta-recursive" + "const": "fs:allow-appconfig-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-read" + "const": "fs:allow-appconfig-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-read-recursive" + "const": "fs:allow-appconfig-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-write" + "const": "fs:allow-appconfig-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-write-recursive" + "const": "fs:allow-appconfig-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`", "type": "string", - "const": "fs:allow-appdata-meta" + "const": "fs:allow-appdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-meta-recursive" + "const": "fs:allow-appdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-read" + "const": "fs:allow-appdata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-read-recursive" + "const": "fs:allow-appdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-write" + "const": "fs:allow-appdata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-write-recursive" + "const": "fs:allow-appdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`", "type": "string", - "const": "fs:allow-applocaldata-meta" + "const": "fs:allow-applocaldata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" + "const": "fs:allow-applocaldata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-read" + "const": "fs:allow-applocaldata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-read-recursive" + "const": "fs:allow-applocaldata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-write" + "const": "fs:allow-applocaldata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-write-recursive" + "const": "fs:allow-applocaldata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`", "type": "string", - "const": "fs:allow-applog-meta" + "const": "fs:allow-applog-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-meta-recursive" + "const": "fs:allow-applog-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-read" + "const": "fs:allow-applog-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`" }, { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-read-recursive" + "const": "fs:allow-applog-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-write" + "const": "fs:allow-applog-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`" }, { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-write-recursive" + "const": "fs:allow-applog-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`", "type": "string", - "const": "fs:allow-audio-meta" + "const": "fs:allow-audio-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`" }, { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-meta-recursive" + "const": "fs:allow-audio-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-read" + "const": "fs:allow-audio-read", + "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`" }, { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-read-recursive" + "const": "fs:allow-audio-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-write" + "const": "fs:allow-audio-write", + "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`" }, { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-write-recursive" + "const": "fs:allow-audio-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`", "type": "string", - "const": "fs:allow-cache-meta" + "const": "fs:allow-cache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-meta-recursive" + "const": "fs:allow-cache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-read" + "const": "fs:allow-cache-read", + "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`" }, { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-read-recursive" + "const": "fs:allow-cache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-write" + "const": "fs:allow-cache-write", + "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`" }, { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-write-recursive" + "const": "fs:allow-cache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`", "type": "string", - "const": "fs:allow-config-meta" + "const": "fs:allow-config-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-meta-recursive" + "const": "fs:allow-config-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-read" + "const": "fs:allow-config-read", + "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`" }, { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-read-recursive" + "const": "fs:allow-config-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-write" + "const": "fs:allow-config-write", + "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`" }, { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-write-recursive" + "const": "fs:allow-config-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`", "type": "string", - "const": "fs:allow-data-meta" + "const": "fs:allow-data-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-meta-recursive" + "const": "fs:allow-data-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-read" + "const": "fs:allow-data-read", + "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`" }, { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-read-recursive" + "const": "fs:allow-data-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-write" + "const": "fs:allow-data-write", + "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`" }, { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-write-recursive" + "const": "fs:allow-data-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`", "type": "string", - "const": "fs:allow-desktop-meta" + "const": "fs:allow-desktop-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-meta-recursive" + "const": "fs:allow-desktop-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-read" + "const": "fs:allow-desktop-read", + "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-read-recursive" + "const": "fs:allow-desktop-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-write" + "const": "fs:allow-desktop-write", + "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-write-recursive" + "const": "fs:allow-desktop-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`", "type": "string", - "const": "fs:allow-document-meta" + "const": "fs:allow-document-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-meta-recursive" + "const": "fs:allow-document-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-read" + "const": "fs:allow-document-read", + "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`" }, { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-read-recursive" + "const": "fs:allow-document-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-write" + "const": "fs:allow-document-write", + "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`" }, { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-write-recursive" + "const": "fs:allow-document-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`", "type": "string", - "const": "fs:allow-download-meta" + "const": "fs:allow-download-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-meta-recursive" + "const": "fs:allow-download-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-read" + "const": "fs:allow-download-read", + "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`" }, { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-read-recursive" + "const": "fs:allow-download-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-write" + "const": "fs:allow-download-write", + "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`" }, { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-write-recursive" + "const": "fs:allow-download-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`", "type": "string", - "const": "fs:allow-exe-meta" + "const": "fs:allow-exe-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`" }, { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-meta-recursive" + "const": "fs:allow-exe-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-read" + "const": "fs:allow-exe-read", + "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`" }, { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-read-recursive" + "const": "fs:allow-exe-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-write" + "const": "fs:allow-exe-write", + "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`" }, { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-write-recursive" + "const": "fs:allow-exe-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`", "type": "string", - "const": "fs:allow-font-meta" + "const": "fs:allow-font-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`" }, { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-meta-recursive" + "const": "fs:allow-font-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-read" + "const": "fs:allow-font-read", + "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`" }, { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-read-recursive" + "const": "fs:allow-font-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-write" + "const": "fs:allow-font-write", + "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`" }, { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-write-recursive" + "const": "fs:allow-font-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`", "type": "string", - "const": "fs:allow-home-meta" + "const": "fs:allow-home-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`" }, { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-meta-recursive" + "const": "fs:allow-home-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-read" + "const": "fs:allow-home-read", + "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`" }, { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-read-recursive" + "const": "fs:allow-home-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-write" + "const": "fs:allow-home-write", + "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`" }, { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-write-recursive" + "const": "fs:allow-home-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`", "type": "string", - "const": "fs:allow-localdata-meta" + "const": "fs:allow-localdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-meta-recursive" + "const": "fs:allow-localdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-read" + "const": "fs:allow-localdata-read", + "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-read-recursive" + "const": "fs:allow-localdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-write" + "const": "fs:allow-localdata-write", + "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-write-recursive" + "const": "fs:allow-localdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`", "type": "string", - "const": "fs:allow-log-meta" + "const": "fs:allow-log-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-meta-recursive" + "const": "fs:allow-log-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-read" + "const": "fs:allow-log-read", + "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`" }, { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-read-recursive" + "const": "fs:allow-log-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-write" + "const": "fs:allow-log-write", + "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`" }, { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-write-recursive" + "const": "fs:allow-log-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`", "type": "string", - "const": "fs:allow-picture-meta" + "const": "fs:allow-picture-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-meta-recursive" + "const": "fs:allow-picture-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-read" + "const": "fs:allow-picture-read", + "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`" }, { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-read-recursive" + "const": "fs:allow-picture-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-write" + "const": "fs:allow-picture-write", + "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`" }, { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-write-recursive" + "const": "fs:allow-picture-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`", "type": "string", - "const": "fs:allow-public-meta" + "const": "fs:allow-public-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-meta-recursive" + "const": "fs:allow-public-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-read" + "const": "fs:allow-public-read", + "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`" }, { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-read-recursive" + "const": "fs:allow-public-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-write" + "const": "fs:allow-public-write", + "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`" }, { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-write-recursive" + "const": "fs:allow-public-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`", "type": "string", - "const": "fs:allow-resource-meta" + "const": "fs:allow-resource-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-meta-recursive" + "const": "fs:allow-resource-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-read" + "const": "fs:allow-resource-read", + "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`" }, { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-read-recursive" + "const": "fs:allow-resource-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-write" + "const": "fs:allow-resource-write", + "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`" }, { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-write-recursive" + "const": "fs:allow-resource-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`", "type": "string", - "const": "fs:allow-runtime-meta" + "const": "fs:allow-runtime-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-meta-recursive" + "const": "fs:allow-runtime-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-read" + "const": "fs:allow-runtime-read", + "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-read-recursive" + "const": "fs:allow-runtime-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-write" + "const": "fs:allow-runtime-write", + "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-write-recursive" + "const": "fs:allow-runtime-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`", "type": "string", - "const": "fs:allow-temp-meta" + "const": "fs:allow-temp-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-meta-recursive" + "const": "fs:allow-temp-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-read" + "const": "fs:allow-temp-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`" }, { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-read-recursive" + "const": "fs:allow-temp-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-write" + "const": "fs:allow-temp-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`" }, { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-write-recursive" + "const": "fs:allow-temp-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`", "type": "string", - "const": "fs:allow-template-meta" + "const": "fs:allow-template-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-meta-recursive" + "const": "fs:allow-template-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-read" + "const": "fs:allow-template-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`" }, { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-read-recursive" + "const": "fs:allow-template-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-write" + "const": "fs:allow-template-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`" }, { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-write-recursive" + "const": "fs:allow-template-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`", "type": "string", - "const": "fs:allow-video-meta" + "const": "fs:allow-video-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`" }, { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-meta-recursive" + "const": "fs:allow-video-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-read" + "const": "fs:allow-video-read", + "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`" }, { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-read-recursive" + "const": "fs:allow-video-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-write" + "const": "fs:allow-video-write", + "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`" }, { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-write-recursive" + "const": "fs:allow-video-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`" }, { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`", "type": "string", - "const": "fs:deny-default" + "const": "fs:deny-default", + "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`" }, { "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-copy-file" + "const": "fs:allow-copy-file", + "markdownDescription": "Enables the copy_file command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "fs:allow-create" + "const": "fs:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "const": "fs:allow-exists" + "const": "fs:allow-exists", + "markdownDescription": "Enables the exists command without any pre-configured scope." }, { "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-fstat" + "const": "fs:allow-fstat", + "markdownDescription": "Enables the fstat command without any pre-configured scope." }, { "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-ftruncate" + "const": "fs:allow-ftruncate", + "markdownDescription": "Enables the ftruncate command without any pre-configured scope." }, { "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-lstat" + "const": "fs:allow-lstat", + "markdownDescription": "Enables the lstat command without any pre-configured scope." }, { "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-mkdir" + "const": "fs:allow-mkdir", + "markdownDescription": "Enables the mkdir command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "fs:allow-open" + "const": "fs:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the read command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read" + "const": "fs:allow-read", + "markdownDescription": "Enables the read command without any pre-configured scope." }, { "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-dir" + "const": "fs:allow-read-dir", + "markdownDescription": "Enables the read_dir command without any pre-configured scope." }, { "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-file" + "const": "fs:allow-read-file", + "markdownDescription": "Enables the read_file command without any pre-configured scope." }, { "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file" + "const": "fs:allow-read-text-file", + "markdownDescription": "Enables the read_text_file command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines" + "const": "fs:allow-read-text-file-lines", + "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines-next" + "const": "fs:allow-read-text-file-lines-next", + "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "fs:allow-remove" + "const": "fs:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "const": "fs:allow-rename" + "const": "fs:allow-rename", + "markdownDescription": "Enables the rename command without any pre-configured scope." }, { "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "const": "fs:allow-seek" + "const": "fs:allow-seek", + "markdownDescription": "Enables the seek command without any pre-configured scope." }, { "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-stat" + "const": "fs:allow-stat", + "markdownDescription": "Enables the stat command without any pre-configured scope." }, { "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-truncate" + "const": "fs:allow-truncate", + "markdownDescription": "Enables the truncate command without any pre-configured scope." }, { "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-unwatch" + "const": "fs:allow-unwatch", + "markdownDescription": "Enables the unwatch command without any pre-configured scope." }, { "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-watch" + "const": "fs:allow-watch", + "markdownDescription": "Enables the watch command without any pre-configured scope." }, { "description": "Enables the write command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write" + "const": "fs:allow-write", + "markdownDescription": "Enables the write command without any pre-configured scope." }, { "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-file" + "const": "fs:allow-write-file", + "markdownDescription": "Enables the write_file command without any pre-configured scope." }, { "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-text-file" + "const": "fs:allow-write-text-file", + "markdownDescription": "Enables the write_text_file command without any pre-configured scope." }, { "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "const": "fs:create-app-specific-dirs" + "const": "fs:create-app-specific-dirs", + "markdownDescription": "This permissions allows to create the application specific directories.\n" }, { "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-copy-file" + "const": "fs:deny-copy-file", + "markdownDescription": "Denies the copy_file command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "fs:deny-create" + "const": "fs:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "const": "fs:deny-exists" + "const": "fs:deny-exists", + "markdownDescription": "Denies the exists command without any pre-configured scope." }, { "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-fstat" + "const": "fs:deny-fstat", + "markdownDescription": "Denies the fstat command without any pre-configured scope." }, { "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-ftruncate" + "const": "fs:deny-ftruncate", + "markdownDescription": "Denies the ftruncate command without any pre-configured scope." }, { "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-lstat" + "const": "fs:deny-lstat", + "markdownDescription": "Denies the lstat command without any pre-configured scope." }, { "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-mkdir" + "const": "fs:deny-mkdir", + "markdownDescription": "Denies the mkdir command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "fs:deny-open" + "const": "fs:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the read command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read" + "const": "fs:deny-read", + "markdownDescription": "Denies the read command without any pre-configured scope." }, { "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-dir" + "const": "fs:deny-read-dir", + "markdownDescription": "Denies the read_dir command without any pre-configured scope." }, { "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-file" + "const": "fs:deny-read-file", + "markdownDescription": "Denies the read_file command without any pre-configured scope." }, { "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file" + "const": "fs:deny-read-text-file", + "markdownDescription": "Denies the read_text_file command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines" + "const": "fs:deny-read-text-file-lines", + "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines-next" + "const": "fs:deny-read-text-file-lines-next", + "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "fs:deny-remove" + "const": "fs:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "const": "fs:deny-rename" + "const": "fs:deny-rename", + "markdownDescription": "Denies the rename command without any pre-configured scope." }, { "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "const": "fs:deny-seek" + "const": "fs:deny-seek", + "markdownDescription": "Denies the seek command without any pre-configured scope." }, { "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-stat" + "const": "fs:deny-stat", + "markdownDescription": "Denies the stat command without any pre-configured scope." }, { "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-truncate" + "const": "fs:deny-truncate", + "markdownDescription": "Denies the truncate command without any pre-configured scope." }, { "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-unwatch" + "const": "fs:deny-unwatch", + "markdownDescription": "Denies the unwatch command without any pre-configured scope." }, { "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-watch" + "const": "fs:deny-watch", + "markdownDescription": "Denies the watch command without any pre-configured scope." }, { "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-linux" + "const": "fs:deny-webview-data-linux", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-windows" + "const": "fs:deny-webview-data-windows", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "Denies the write command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write" + "const": "fs:deny-write", + "markdownDescription": "Denies the write command without any pre-configured scope." }, { "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-file" + "const": "fs:deny-write-file", + "markdownDescription": "Denies the write_file command without any pre-configured scope." }, { "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-text-file" + "const": "fs:deny-write-text-file", + "markdownDescription": "Denies the write_text_file command without any pre-configured scope." }, { "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-all" + "const": "fs:read-all", + "markdownDescription": "This enables all read related commands without any pre-configured accessible paths." }, { "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "const": "fs:read-app-specific-dirs-recursive" + "const": "fs:read-app-specific-dirs-recursive", + "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n" }, { "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-dirs" + "const": "fs:read-dirs", + "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths." }, { "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-files" + "const": "fs:read-files", + "markdownDescription": "This enables file read related commands without any pre-configured accessible paths." }, { "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-meta" + "const": "fs:read-meta", + "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths." }, { "description": "An empty permission you can use to modify the global scope.", "type": "string", - "const": "fs:scope" + "const": "fs:scope", + "markdownDescription": "An empty permission you can use to modify the global scope." }, { "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "const": "fs:scope-app" + "const": "fs:scope-app", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders." }, { "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "const": "fs:scope-app-index" + "const": "fs:scope-app-index", + "markdownDescription": "This scope permits to list all files and folders in the application directories." }, { "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "const": "fs:scope-app-recursive" + "const": "fs:scope-app-recursive", + "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "const": "fs:scope-appcache" + "const": "fs:scope-appcache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "const": "fs:scope-appcache-index" + "const": "fs:scope-appcache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder." }, { "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appcache-recursive" + "const": "fs:scope-appcache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "const": "fs:scope-appconfig" + "const": "fs:scope-appconfig", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "const": "fs:scope-appconfig-index" + "const": "fs:scope-appconfig-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appconfig-recursive" + "const": "fs:scope-appconfig-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "const": "fs:scope-appdata" + "const": "fs:scope-appdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "const": "fs:scope-appdata-index" + "const": "fs:scope-appdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appdata-recursive" + "const": "fs:scope-appdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "const": "fs:scope-applocaldata" + "const": "fs:scope-applocaldata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "const": "fs:scope-applocaldata-index" + "const": "fs:scope-applocaldata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applocaldata-recursive" + "const": "fs:scope-applocaldata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "const": "fs:scope-applog" + "const": "fs:scope-applog", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "const": "fs:scope-applog-index" + "const": "fs:scope-applog-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applog-recursive" + "const": "fs:scope-applog-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "const": "fs:scope-audio" + "const": "fs:scope-audio", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder." }, { "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "const": "fs:scope-audio-index" + "const": "fs:scope-audio-index", + "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder." }, { "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-audio-recursive" + "const": "fs:scope-audio-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "const": "fs:scope-cache" + "const": "fs:scope-cache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "const": "fs:scope-cache-index" + "const": "fs:scope-cache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder." }, { "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-cache-recursive" + "const": "fs:scope-cache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "const": "fs:scope-config" + "const": "fs:scope-config", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "const": "fs:scope-config-index" + "const": "fs:scope-config-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-config-recursive" + "const": "fs:scope-config-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "const": "fs:scope-data" + "const": "fs:scope-data", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder." }, { "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "const": "fs:scope-data-index" + "const": "fs:scope-data-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder." }, { "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-data-recursive" + "const": "fs:scope-data-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "const": "fs:scope-desktop" + "const": "fs:scope-desktop", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder." }, { "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "const": "fs:scope-desktop-index" + "const": "fs:scope-desktop-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder." }, { "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-desktop-recursive" + "const": "fs:scope-desktop-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "const": "fs:scope-document" + "const": "fs:scope-document", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder." }, { "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "const": "fs:scope-document-index" + "const": "fs:scope-document-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder." }, { "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-document-recursive" + "const": "fs:scope-document-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "const": "fs:scope-download" + "const": "fs:scope-download", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder." }, { "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "const": "fs:scope-download-index" + "const": "fs:scope-download-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder." }, { "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-download-recursive" + "const": "fs:scope-download-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "const": "fs:scope-exe" + "const": "fs:scope-exe", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder." }, { "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "const": "fs:scope-exe-index" + "const": "fs:scope-exe-index", + "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder." }, { "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-exe-recursive" + "const": "fs:scope-exe-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "const": "fs:scope-font" + "const": "fs:scope-font", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder." }, { "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "const": "fs:scope-font-index" + "const": "fs:scope-font-index", + "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder." }, { "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-font-recursive" + "const": "fs:scope-font-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "const": "fs:scope-home" + "const": "fs:scope-home", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder." }, { "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "const": "fs:scope-home-index" + "const": "fs:scope-home-index", + "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder." }, { "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-home-recursive" + "const": "fs:scope-home-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "const": "fs:scope-localdata" + "const": "fs:scope-localdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "const": "fs:scope-localdata-index" + "const": "fs:scope-localdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-localdata-recursive" + "const": "fs:scope-localdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "const": "fs:scope-log" + "const": "fs:scope-log", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder." }, { "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "const": "fs:scope-log-index" + "const": "fs:scope-log-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder." }, { "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-log-recursive" + "const": "fs:scope-log-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "const": "fs:scope-picture" + "const": "fs:scope-picture", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder." }, { "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "const": "fs:scope-picture-index" + "const": "fs:scope-picture-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder." }, { "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-picture-recursive" + "const": "fs:scope-picture-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "const": "fs:scope-public" + "const": "fs:scope-public", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder." }, { "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "const": "fs:scope-public-index" + "const": "fs:scope-public-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder." }, { "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-public-recursive" + "const": "fs:scope-public-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "const": "fs:scope-resource" + "const": "fs:scope-resource", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder." }, { "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "const": "fs:scope-resource-index" + "const": "fs:scope-resource-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder." }, { "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-resource-recursive" + "const": "fs:scope-resource-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "const": "fs:scope-runtime" + "const": "fs:scope-runtime", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder." }, { "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "const": "fs:scope-runtime-index" + "const": "fs:scope-runtime-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder." }, { "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-runtime-recursive" + "const": "fs:scope-runtime-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "const": "fs:scope-temp" + "const": "fs:scope-temp", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "const": "fs:scope-temp-index" + "const": "fs:scope-temp-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder." }, { "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-temp-recursive" + "const": "fs:scope-temp-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "const": "fs:scope-template" + "const": "fs:scope-template", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "const": "fs:scope-template-index" + "const": "fs:scope-template-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder." }, { "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-template-recursive" + "const": "fs:scope-template-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "const": "fs:scope-video" + "const": "fs:scope-video", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder." }, { "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "const": "fs:scope-video-index" + "const": "fs:scope-video-index", + "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder." }, { "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-video-recursive" + "const": "fs:scope-video-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files." }, { "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-all" + "const": "fs:write-all", + "markdownDescription": "This enables all write related commands without any pre-configured accessible paths." }, { "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-files" + "const": "fs:write-files", + "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths." }, { "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", "type": "string", - "const": "global-shortcut:default" + "const": "global-shortcut:default", + "markdownDescription": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n" }, { "description": "Enables the is_registered command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-is-registered" + "const": "global-shortcut:allow-is-registered", + "markdownDescription": "Enables the is_registered command without any pre-configured scope." }, { "description": "Enables the register command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-register" + "const": "global-shortcut:allow-register", + "markdownDescription": "Enables the register command without any pre-configured scope." }, { "description": "Enables the register_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-register-all" + "const": "global-shortcut:allow-register-all", + "markdownDescription": "Enables the register_all command without any pre-configured scope." }, { "description": "Enables the unregister command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-unregister" + "const": "global-shortcut:allow-unregister", + "markdownDescription": "Enables the unregister command without any pre-configured scope." }, { "description": "Enables the unregister_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-unregister-all" + "const": "global-shortcut:allow-unregister-all", + "markdownDescription": "Enables the unregister_all command without any pre-configured scope." }, { "description": "Denies the is_registered command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-is-registered" + "const": "global-shortcut:deny-is-registered", + "markdownDescription": "Denies the is_registered command without any pre-configured scope." }, { "description": "Denies the register command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-register" + "const": "global-shortcut:deny-register", + "markdownDescription": "Denies the register command without any pre-configured scope." }, { "description": "Denies the register_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-register-all" + "const": "global-shortcut:deny-register-all", + "markdownDescription": "Denies the register_all command without any pre-configured scope." }, { "description": "Denies the unregister command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-unregister" + "const": "global-shortcut:deny-unregister", + "markdownDescription": "Denies the unregister command without any pre-configured scope." }, { "description": "Denies the unregister_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-unregister-all" + "const": "global-shortcut:deny-unregister-all", + "markdownDescription": "Denies the unregister_all command without any pre-configured scope." }, { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`", "type": "string", - "const": "http:default" + "const": "http:default", + "markdownDescription": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`" }, { "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch" + "const": "http:allow-fetch", + "markdownDescription": "Enables the fetch command without any pre-configured scope." }, { "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-cancel" + "const": "http:allow-fetch-cancel", + "markdownDescription": "Enables the fetch_cancel command without any pre-configured scope." }, { "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-read-body" + "const": "http:allow-fetch-read-body", + "markdownDescription": "Enables the fetch_read_body command without any pre-configured scope." }, { "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-send" + "const": "http:allow-fetch-send", + "markdownDescription": "Enables the fetch_send command without any pre-configured scope." }, { "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch" + "const": "http:deny-fetch", + "markdownDescription": "Denies the fetch command without any pre-configured scope." }, { "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-cancel" + "const": "http:deny-fetch-cancel", + "markdownDescription": "Denies the fetch_cancel command without any pre-configured scope." }, { "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-read-body" + "const": "http:deny-fetch-read-body", + "markdownDescription": "Denies the fetch_read_body command without any pre-configured scope." }, { "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-send" + "const": "http:deny-fetch-send", + "markdownDescription": "Denies the fetch_send command without any pre-configured scope." }, { - "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`", "type": "string", - "const": "notification:default" + "const": "notification:default", + "markdownDescription": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`" }, { "description": "Enables the batch command without any pre-configured scope.", "type": "string", - "const": "notification:allow-batch" + "const": "notification:allow-batch", + "markdownDescription": "Enables the batch command without any pre-configured scope." }, { "description": "Enables the cancel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-cancel" + "const": "notification:allow-cancel", + "markdownDescription": "Enables the cancel command without any pre-configured scope." }, { "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "const": "notification:allow-check-permissions" + "const": "notification:allow-check-permissions", + "markdownDescription": "Enables the check_permissions command without any pre-configured scope." }, { "description": "Enables the create_channel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-create-channel" + "const": "notification:allow-create-channel", + "markdownDescription": "Enables the create_channel command without any pre-configured scope." }, { "description": "Enables the delete_channel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-delete-channel" + "const": "notification:allow-delete-channel", + "markdownDescription": "Enables the delete_channel command without any pre-configured scope." }, { "description": "Enables the get_active command without any pre-configured scope.", "type": "string", - "const": "notification:allow-get-active" + "const": "notification:allow-get-active", + "markdownDescription": "Enables the get_active command without any pre-configured scope." }, { "description": "Enables the get_pending command without any pre-configured scope.", "type": "string", - "const": "notification:allow-get-pending" + "const": "notification:allow-get-pending", + "markdownDescription": "Enables the get_pending command without any pre-configured scope." }, { "description": "Enables the is_permission_granted command without any pre-configured scope.", "type": "string", - "const": "notification:allow-is-permission-granted" + "const": "notification:allow-is-permission-granted", + "markdownDescription": "Enables the is_permission_granted command without any pre-configured scope." }, { "description": "Enables the list_channels command without any pre-configured scope.", "type": "string", - "const": "notification:allow-list-channels" + "const": "notification:allow-list-channels", + "markdownDescription": "Enables the list_channels command without any pre-configured scope." }, { "description": "Enables the notify command without any pre-configured scope.", "type": "string", - "const": "notification:allow-notify" + "const": "notification:allow-notify", + "markdownDescription": "Enables the notify command without any pre-configured scope." }, { "description": "Enables the permission_state command without any pre-configured scope.", "type": "string", - "const": "notification:allow-permission-state" + "const": "notification:allow-permission-state", + "markdownDescription": "Enables the permission_state command without any pre-configured scope." }, { "description": "Enables the register_action_types command without any pre-configured scope.", "type": "string", - "const": "notification:allow-register-action-types" + "const": "notification:allow-register-action-types", + "markdownDescription": "Enables the register_action_types command without any pre-configured scope." }, { "description": "Enables the register_listener command without any pre-configured scope.", "type": "string", - "const": "notification:allow-register-listener" + "const": "notification:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." }, { "description": "Enables the remove_active command without any pre-configured scope.", "type": "string", - "const": "notification:allow-remove-active" + "const": "notification:allow-remove-active", + "markdownDescription": "Enables the remove_active command without any pre-configured scope." }, { "description": "Enables the request_permission command without any pre-configured scope.", "type": "string", - "const": "notification:allow-request-permission" + "const": "notification:allow-request-permission", + "markdownDescription": "Enables the request_permission command without any pre-configured scope." }, { "description": "Enables the show command without any pre-configured scope.", "type": "string", - "const": "notification:allow-show" + "const": "notification:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." }, { "description": "Denies the batch command without any pre-configured scope.", "type": "string", - "const": "notification:deny-batch" + "const": "notification:deny-batch", + "markdownDescription": "Denies the batch command without any pre-configured scope." }, { "description": "Denies the cancel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-cancel" + "const": "notification:deny-cancel", + "markdownDescription": "Denies the cancel command without any pre-configured scope." }, { "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "const": "notification:deny-check-permissions" + "const": "notification:deny-check-permissions", + "markdownDescription": "Denies the check_permissions command without any pre-configured scope." }, { "description": "Denies the create_channel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-create-channel" + "const": "notification:deny-create-channel", + "markdownDescription": "Denies the create_channel command without any pre-configured scope." }, { "description": "Denies the delete_channel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-delete-channel" + "const": "notification:deny-delete-channel", + "markdownDescription": "Denies the delete_channel command without any pre-configured scope." }, { "description": "Denies the get_active command without any pre-configured scope.", "type": "string", - "const": "notification:deny-get-active" + "const": "notification:deny-get-active", + "markdownDescription": "Denies the get_active command without any pre-configured scope." }, { "description": "Denies the get_pending command without any pre-configured scope.", "type": "string", - "const": "notification:deny-get-pending" + "const": "notification:deny-get-pending", + "markdownDescription": "Denies the get_pending command without any pre-configured scope." }, { "description": "Denies the is_permission_granted command without any pre-configured scope.", "type": "string", - "const": "notification:deny-is-permission-granted" + "const": "notification:deny-is-permission-granted", + "markdownDescription": "Denies the is_permission_granted command without any pre-configured scope." }, { "description": "Denies the list_channels command without any pre-configured scope.", "type": "string", - "const": "notification:deny-list-channels" + "const": "notification:deny-list-channels", + "markdownDescription": "Denies the list_channels command without any pre-configured scope." }, { "description": "Denies the notify command without any pre-configured scope.", "type": "string", - "const": "notification:deny-notify" + "const": "notification:deny-notify", + "markdownDescription": "Denies the notify command without any pre-configured scope." }, { "description": "Denies the permission_state command without any pre-configured scope.", "type": "string", - "const": "notification:deny-permission-state" + "const": "notification:deny-permission-state", + "markdownDescription": "Denies the permission_state command without any pre-configured scope." }, { "description": "Denies the register_action_types command without any pre-configured scope.", "type": "string", - "const": "notification:deny-register-action-types" + "const": "notification:deny-register-action-types", + "markdownDescription": "Denies the register_action_types command without any pre-configured scope." }, { "description": "Denies the register_listener command without any pre-configured scope.", "type": "string", - "const": "notification:deny-register-listener" + "const": "notification:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." }, { "description": "Denies the remove_active command without any pre-configured scope.", "type": "string", - "const": "notification:deny-remove-active" + "const": "notification:deny-remove-active", + "markdownDescription": "Denies the remove_active command without any pre-configured scope." }, { "description": "Denies the request_permission command without any pre-configured scope.", "type": "string", - "const": "notification:deny-request-permission" + "const": "notification:deny-request-permission", + "markdownDescription": "Denies the request_permission command without any pre-configured scope." }, { "description": "Denies the show command without any pre-configured scope.", "type": "string", - "const": "notification:deny-show" + "const": "notification:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." }, { - "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer", + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", "type": "string", - "const": "opener:default" + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" }, { "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", "type": "string", - "const": "opener:allow-default-urls" + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." }, { "description": "Enables the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-path" + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." }, { "description": "Enables the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-url" + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." }, { "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:allow-reveal-item-in-dir" + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." }, { "description": "Denies the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-path" + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." }, { "description": "Denies the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-url" + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." }, { "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:deny-reveal-item-in-dir" + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." }, { - "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n\n#### This default permission set includes:\n\n- `allow-arch`\n- `allow-exe-extension`\n- `allow-family`\n- `allow-locale`\n- `allow-os-type`\n- `allow-platform`\n- `allow-version`", "type": "string", - "const": "os:default" + "const": "os:default", + "markdownDescription": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n\n#### This default permission set includes:\n\n- `allow-arch`\n- `allow-exe-extension`\n- `allow-family`\n- `allow-locale`\n- `allow-os-type`\n- `allow-platform`\n- `allow-version`" }, { "description": "Enables the arch command without any pre-configured scope.", "type": "string", - "const": "os:allow-arch" + "const": "os:allow-arch", + "markdownDescription": "Enables the arch command without any pre-configured scope." }, { "description": "Enables the exe_extension command without any pre-configured scope.", "type": "string", - "const": "os:allow-exe-extension" + "const": "os:allow-exe-extension", + "markdownDescription": "Enables the exe_extension command without any pre-configured scope." }, { "description": "Enables the family command without any pre-configured scope.", "type": "string", - "const": "os:allow-family" + "const": "os:allow-family", + "markdownDescription": "Enables the family command without any pre-configured scope." }, { "description": "Enables the hostname command without any pre-configured scope.", "type": "string", - "const": "os:allow-hostname" + "const": "os:allow-hostname", + "markdownDescription": "Enables the hostname command without any pre-configured scope." }, { "description": "Enables the locale command without any pre-configured scope.", "type": "string", - "const": "os:allow-locale" + "const": "os:allow-locale", + "markdownDescription": "Enables the locale command without any pre-configured scope." }, { "description": "Enables the os_type command without any pre-configured scope.", "type": "string", - "const": "os:allow-os-type" + "const": "os:allow-os-type", + "markdownDescription": "Enables the os_type command without any pre-configured scope." }, { "description": "Enables the platform command without any pre-configured scope.", "type": "string", - "const": "os:allow-platform" + "const": "os:allow-platform", + "markdownDescription": "Enables the platform command without any pre-configured scope." }, { "description": "Enables the version command without any pre-configured scope.", "type": "string", - "const": "os:allow-version" + "const": "os:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." }, { "description": "Denies the arch command without any pre-configured scope.", "type": "string", - "const": "os:deny-arch" + "const": "os:deny-arch", + "markdownDescription": "Denies the arch command without any pre-configured scope." }, { "description": "Denies the exe_extension command without any pre-configured scope.", "type": "string", - "const": "os:deny-exe-extension" + "const": "os:deny-exe-extension", + "markdownDescription": "Denies the exe_extension command without any pre-configured scope." }, { "description": "Denies the family command without any pre-configured scope.", "type": "string", - "const": "os:deny-family" + "const": "os:deny-family", + "markdownDescription": "Denies the family command without any pre-configured scope." }, { "description": "Denies the hostname command without any pre-configured scope.", "type": "string", - "const": "os:deny-hostname" + "const": "os:deny-hostname", + "markdownDescription": "Denies the hostname command without any pre-configured scope." }, { "description": "Denies the locale command without any pre-configured scope.", "type": "string", - "const": "os:deny-locale" + "const": "os:deny-locale", + "markdownDescription": "Denies the locale command without any pre-configured scope." }, { "description": "Denies the os_type command without any pre-configured scope.", "type": "string", - "const": "os:deny-os-type" + "const": "os:deny-os-type", + "markdownDescription": "Denies the os_type command without any pre-configured scope." }, { "description": "Denies the platform command without any pre-configured scope.", "type": "string", - "const": "os:deny-platform" + "const": "os:deny-platform", + "markdownDescription": "Denies the platform command without any pre-configured scope." }, { "description": "Denies the version command without any pre-configured scope.", "type": "string", - "const": "os:deny-version" + "const": "os:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." }, { - "description": "Allows the moveWindow and handleIconState APIs", + "description": "Allows the moveWindow and handleIconState APIs\n#### This default permission set includes:\n\n- `allow-move-window`\n- `set-tray-icon-state`", "type": "string", - "const": "positioner:default" + "const": "positioner:default", + "markdownDescription": "Allows the moveWindow and handleIconState APIs\n#### This default permission set includes:\n\n- `allow-move-window`\n- `set-tray-icon-state`" }, { "description": "Enables the move_window command without any pre-configured scope.", "type": "string", - "const": "positioner:allow-move-window" + "const": "positioner:allow-move-window", + "markdownDescription": "Enables the move_window command without any pre-configured scope." }, { "description": "Enables the set_tray_icon_state command without any pre-configured scope.", "type": "string", - "const": "positioner:allow-set-tray-icon-state" + "const": "positioner:allow-set-tray-icon-state", + "markdownDescription": "Enables the set_tray_icon_state command without any pre-configured scope." }, { "description": "Denies the move_window command without any pre-configured scope.", "type": "string", - "const": "positioner:deny-move-window" + "const": "positioner:deny-move-window", + "markdownDescription": "Denies the move_window command without any pre-configured scope." }, { "description": "Denies the set_tray_icon_state command without any pre-configured scope.", "type": "string", - "const": "positioner:deny-set-tray-icon-state" + "const": "positioner:deny-set-tray-icon-state", + "markdownDescription": "Denies the set_tray_icon_state command without any pre-configured scope." }, { - "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`", "type": "string", - "const": "process:default" + "const": "process:default", + "markdownDescription": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`" }, { "description": "Enables the exit command without any pre-configured scope.", "type": "string", - "const": "process:allow-exit" + "const": "process:allow-exit", + "markdownDescription": "Enables the exit command without any pre-configured scope." }, { "description": "Enables the restart command without any pre-configured scope.", "type": "string", - "const": "process:allow-restart" + "const": "process:allow-restart", + "markdownDescription": "Enables the restart command without any pre-configured scope." }, { "description": "Denies the exit command without any pre-configured scope.", "type": "string", - "const": "process:deny-exit" + "const": "process:deny-exit", + "markdownDescription": "Denies the exit command without any pre-configured scope." }, { "description": "Denies the restart command without any pre-configured scope.", "type": "string", - "const": "process:deny-restart" + "const": "process:deny-restart", + "markdownDescription": "Denies the restart command without any pre-configured scope." }, { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", "type": "string", - "const": "shell:default" + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" }, { "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "const": "shell:allow-execute" + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." }, { "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "const": "shell:allow-kill" + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "shell:allow-open" + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:allow-spawn" + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." }, { "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:allow-stdin-write" + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." }, { "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "const": "shell:deny-execute" + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." }, { "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "const": "shell:deny-kill" + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "shell:deny-open" + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:deny-spawn" + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." }, { "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:deny-stdin-write" + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." }, { - "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", + "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n\n#### This default permission set includes:\n\n- `allow-check`\n- `allow-download`\n- `allow-install`\n- `allow-download-and-install`", "type": "string", - "const": "updater:default" + "const": "updater:default", + "markdownDescription": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n\n#### This default permission set includes:\n\n- `allow-check`\n- `allow-download`\n- `allow-install`\n- `allow-download-and-install`" }, { "description": "Enables the check command without any pre-configured scope.", "type": "string", - "const": "updater:allow-check" + "const": "updater:allow-check", + "markdownDescription": "Enables the check command without any pre-configured scope." }, { "description": "Enables the download command without any pre-configured scope.", "type": "string", - "const": "updater:allow-download" + "const": "updater:allow-download", + "markdownDescription": "Enables the download command without any pre-configured scope." }, { "description": "Enables the download_and_install command without any pre-configured scope.", "type": "string", - "const": "updater:allow-download-and-install" + "const": "updater:allow-download-and-install", + "markdownDescription": "Enables the download_and_install command without any pre-configured scope." }, { "description": "Enables the install command without any pre-configured scope.", "type": "string", - "const": "updater:allow-install" + "const": "updater:allow-install", + "markdownDescription": "Enables the install command without any pre-configured scope." }, { "description": "Denies the check command without any pre-configured scope.", "type": "string", - "const": "updater:deny-check" + "const": "updater:deny-check", + "markdownDescription": "Denies the check command without any pre-configured scope." }, { "description": "Denies the download command without any pre-configured scope.", "type": "string", - "const": "updater:deny-download" + "const": "updater:deny-download", + "markdownDescription": "Denies the download command without any pre-configured scope." }, { "description": "Denies the download_and_install command without any pre-configured scope.", "type": "string", - "const": "updater:deny-download-and-install" + "const": "updater:deny-download-and-install", + "markdownDescription": "Denies the download_and_install command without any pre-configured scope." }, { "description": "Denies the install command without any pre-configured scope.", "type": "string", - "const": "updater:deny-install" + "const": "updater:deny-install", + "markdownDescription": "Denies the install command without any pre-configured scope." } ] }, diff --git a/ui/src-tauri/gen/schemas/linux-schema.json b/ui/src-tauri/gen/schemas/linux-schema.json index 3fb73228c..9030ba21e 100644 --- a/ui/src-tauri/gen/schemas/linux-schema.json +++ b/ui/src-tauri/gen/schemas/linux-schema.json @@ -37,7 +37,7 @@ ], "definitions": { "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", "type": "object", "required": [ "identifier", @@ -49,7 +49,7 @@ "type": "string" }, "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", "default": "", "type": "string" }, @@ -70,14 +70,14 @@ "type": "boolean" }, "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", "type": "array", "items": { "type": "string" } }, "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", "type": "array", "items": { "type": "string" @@ -140,1434 +140,1720 @@ "identifier": { "anyOf": [ { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", "type": "string", - "const": "fs:default" + "const": "fs:default", + "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" }, { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`", "type": "string", - "const": "fs:allow-app-meta" + "const": "fs:allow-app-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`" }, { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-meta-recursive" + "const": "fs:allow-app-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-read" + "const": "fs:allow-app-read", + "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`" }, { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-read-recursive" + "const": "fs:allow-app-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-write" + "const": "fs:allow-app-write", + "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`" }, { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-write-recursive" + "const": "fs:allow-app-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`", "type": "string", - "const": "fs:allow-appcache-meta" + "const": "fs:allow-appcache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-meta-recursive" + "const": "fs:allow-appcache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-read" + "const": "fs:allow-appcache-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-read-recursive" + "const": "fs:allow-appcache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-write" + "const": "fs:allow-appcache-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-write-recursive" + "const": "fs:allow-appcache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`", "type": "string", - "const": "fs:allow-appconfig-meta" + "const": "fs:allow-appconfig-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-meta-recursive" + "const": "fs:allow-appconfig-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-read" + "const": "fs:allow-appconfig-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-read-recursive" + "const": "fs:allow-appconfig-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-write" + "const": "fs:allow-appconfig-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-write-recursive" + "const": "fs:allow-appconfig-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`", "type": "string", - "const": "fs:allow-appdata-meta" + "const": "fs:allow-appdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-meta-recursive" + "const": "fs:allow-appdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-read" + "const": "fs:allow-appdata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-read-recursive" + "const": "fs:allow-appdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-write" + "const": "fs:allow-appdata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-write-recursive" + "const": "fs:allow-appdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`", "type": "string", - "const": "fs:allow-applocaldata-meta" + "const": "fs:allow-applocaldata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" + "const": "fs:allow-applocaldata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-read" + "const": "fs:allow-applocaldata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-read-recursive" + "const": "fs:allow-applocaldata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-write" + "const": "fs:allow-applocaldata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-write-recursive" + "const": "fs:allow-applocaldata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`", "type": "string", - "const": "fs:allow-applog-meta" + "const": "fs:allow-applog-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-meta-recursive" + "const": "fs:allow-applog-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-read" + "const": "fs:allow-applog-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`" }, { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-read-recursive" + "const": "fs:allow-applog-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-write" + "const": "fs:allow-applog-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`" }, { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-write-recursive" + "const": "fs:allow-applog-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`", "type": "string", - "const": "fs:allow-audio-meta" + "const": "fs:allow-audio-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`" }, { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-meta-recursive" + "const": "fs:allow-audio-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-read" + "const": "fs:allow-audio-read", + "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`" }, { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-read-recursive" + "const": "fs:allow-audio-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-write" + "const": "fs:allow-audio-write", + "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`" }, { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-write-recursive" + "const": "fs:allow-audio-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`", "type": "string", - "const": "fs:allow-cache-meta" + "const": "fs:allow-cache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-meta-recursive" + "const": "fs:allow-cache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-read" + "const": "fs:allow-cache-read", + "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`" }, { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-read-recursive" + "const": "fs:allow-cache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-write" + "const": "fs:allow-cache-write", + "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`" }, { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-write-recursive" + "const": "fs:allow-cache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`", "type": "string", - "const": "fs:allow-config-meta" + "const": "fs:allow-config-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-meta-recursive" + "const": "fs:allow-config-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-read" + "const": "fs:allow-config-read", + "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`" }, { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-read-recursive" + "const": "fs:allow-config-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-write" + "const": "fs:allow-config-write", + "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`" }, { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-write-recursive" + "const": "fs:allow-config-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`", "type": "string", - "const": "fs:allow-data-meta" + "const": "fs:allow-data-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-meta-recursive" + "const": "fs:allow-data-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-read" + "const": "fs:allow-data-read", + "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`" }, { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-read-recursive" + "const": "fs:allow-data-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-write" + "const": "fs:allow-data-write", + "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`" }, { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-write-recursive" + "const": "fs:allow-data-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`", "type": "string", - "const": "fs:allow-desktop-meta" + "const": "fs:allow-desktop-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-meta-recursive" + "const": "fs:allow-desktop-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-read" + "const": "fs:allow-desktop-read", + "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-read-recursive" + "const": "fs:allow-desktop-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-write" + "const": "fs:allow-desktop-write", + "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-write-recursive" + "const": "fs:allow-desktop-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`", "type": "string", - "const": "fs:allow-document-meta" + "const": "fs:allow-document-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-meta-recursive" + "const": "fs:allow-document-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-read" + "const": "fs:allow-document-read", + "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`" }, { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-read-recursive" + "const": "fs:allow-document-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-write" + "const": "fs:allow-document-write", + "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`" }, { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-write-recursive" + "const": "fs:allow-document-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`", "type": "string", - "const": "fs:allow-download-meta" + "const": "fs:allow-download-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-meta-recursive" + "const": "fs:allow-download-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-read" + "const": "fs:allow-download-read", + "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`" }, { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-read-recursive" + "const": "fs:allow-download-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-write" + "const": "fs:allow-download-write", + "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`" }, { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-write-recursive" + "const": "fs:allow-download-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`", "type": "string", - "const": "fs:allow-exe-meta" + "const": "fs:allow-exe-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`" }, { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-meta-recursive" + "const": "fs:allow-exe-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-read" + "const": "fs:allow-exe-read", + "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`" }, { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-read-recursive" + "const": "fs:allow-exe-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-write" + "const": "fs:allow-exe-write", + "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`" }, { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-write-recursive" + "const": "fs:allow-exe-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`", "type": "string", - "const": "fs:allow-font-meta" + "const": "fs:allow-font-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`" }, { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-meta-recursive" + "const": "fs:allow-font-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-read" + "const": "fs:allow-font-read", + "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`" }, { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-read-recursive" + "const": "fs:allow-font-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-write" + "const": "fs:allow-font-write", + "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`" }, { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-write-recursive" + "const": "fs:allow-font-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`", "type": "string", - "const": "fs:allow-home-meta" + "const": "fs:allow-home-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`" }, { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-meta-recursive" + "const": "fs:allow-home-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-read" + "const": "fs:allow-home-read", + "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`" }, { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-read-recursive" + "const": "fs:allow-home-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-write" + "const": "fs:allow-home-write", + "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`" }, { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-write-recursive" + "const": "fs:allow-home-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`", "type": "string", - "const": "fs:allow-localdata-meta" + "const": "fs:allow-localdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-meta-recursive" + "const": "fs:allow-localdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-read" + "const": "fs:allow-localdata-read", + "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-read-recursive" + "const": "fs:allow-localdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-write" + "const": "fs:allow-localdata-write", + "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-write-recursive" + "const": "fs:allow-localdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`", "type": "string", - "const": "fs:allow-log-meta" + "const": "fs:allow-log-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-meta-recursive" + "const": "fs:allow-log-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-read" + "const": "fs:allow-log-read", + "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`" }, { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-read-recursive" + "const": "fs:allow-log-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-write" + "const": "fs:allow-log-write", + "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`" }, { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-write-recursive" + "const": "fs:allow-log-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`", "type": "string", - "const": "fs:allow-picture-meta" + "const": "fs:allow-picture-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-meta-recursive" + "const": "fs:allow-picture-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-read" + "const": "fs:allow-picture-read", + "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`" }, { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-read-recursive" + "const": "fs:allow-picture-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-write" + "const": "fs:allow-picture-write", + "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`" }, { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-write-recursive" + "const": "fs:allow-picture-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`", "type": "string", - "const": "fs:allow-public-meta" + "const": "fs:allow-public-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-meta-recursive" + "const": "fs:allow-public-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-read" + "const": "fs:allow-public-read", + "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`" }, { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-read-recursive" + "const": "fs:allow-public-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-write" + "const": "fs:allow-public-write", + "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`" }, { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-write-recursive" + "const": "fs:allow-public-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`", "type": "string", - "const": "fs:allow-resource-meta" + "const": "fs:allow-resource-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-meta-recursive" + "const": "fs:allow-resource-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-read" + "const": "fs:allow-resource-read", + "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`" }, { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-read-recursive" + "const": "fs:allow-resource-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-write" + "const": "fs:allow-resource-write", + "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`" }, { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-write-recursive" + "const": "fs:allow-resource-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`", "type": "string", - "const": "fs:allow-runtime-meta" + "const": "fs:allow-runtime-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-meta-recursive" + "const": "fs:allow-runtime-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-read" + "const": "fs:allow-runtime-read", + "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-read-recursive" + "const": "fs:allow-runtime-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-write" + "const": "fs:allow-runtime-write", + "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-write-recursive" + "const": "fs:allow-runtime-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`", "type": "string", - "const": "fs:allow-temp-meta" + "const": "fs:allow-temp-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-meta-recursive" + "const": "fs:allow-temp-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-read" + "const": "fs:allow-temp-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`" }, { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-read-recursive" + "const": "fs:allow-temp-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-write" + "const": "fs:allow-temp-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`" }, { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-write-recursive" + "const": "fs:allow-temp-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`", "type": "string", - "const": "fs:allow-template-meta" + "const": "fs:allow-template-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-meta-recursive" + "const": "fs:allow-template-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-read" + "const": "fs:allow-template-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`" }, { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-read-recursive" + "const": "fs:allow-template-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-write" + "const": "fs:allow-template-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`" }, { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-write-recursive" + "const": "fs:allow-template-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`", "type": "string", - "const": "fs:allow-video-meta" + "const": "fs:allow-video-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`" }, { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-meta-recursive" + "const": "fs:allow-video-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-read" + "const": "fs:allow-video-read", + "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`" }, { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-read-recursive" + "const": "fs:allow-video-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-write" + "const": "fs:allow-video-write", + "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`" }, { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-write-recursive" + "const": "fs:allow-video-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`" }, { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`", "type": "string", - "const": "fs:deny-default" + "const": "fs:deny-default", + "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`" }, { "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-copy-file" + "const": "fs:allow-copy-file", + "markdownDescription": "Enables the copy_file command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "fs:allow-create" + "const": "fs:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "const": "fs:allow-exists" + "const": "fs:allow-exists", + "markdownDescription": "Enables the exists command without any pre-configured scope." }, { "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-fstat" + "const": "fs:allow-fstat", + "markdownDescription": "Enables the fstat command without any pre-configured scope." }, { "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-ftruncate" + "const": "fs:allow-ftruncate", + "markdownDescription": "Enables the ftruncate command without any pre-configured scope." }, { "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-lstat" + "const": "fs:allow-lstat", + "markdownDescription": "Enables the lstat command without any pre-configured scope." }, { "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-mkdir" + "const": "fs:allow-mkdir", + "markdownDescription": "Enables the mkdir command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "fs:allow-open" + "const": "fs:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the read command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read" + "const": "fs:allow-read", + "markdownDescription": "Enables the read command without any pre-configured scope." }, { "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-dir" + "const": "fs:allow-read-dir", + "markdownDescription": "Enables the read_dir command without any pre-configured scope." }, { "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-file" + "const": "fs:allow-read-file", + "markdownDescription": "Enables the read_file command without any pre-configured scope." }, { "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file" + "const": "fs:allow-read-text-file", + "markdownDescription": "Enables the read_text_file command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines" + "const": "fs:allow-read-text-file-lines", + "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines-next" + "const": "fs:allow-read-text-file-lines-next", + "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "fs:allow-remove" + "const": "fs:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "const": "fs:allow-rename" + "const": "fs:allow-rename", + "markdownDescription": "Enables the rename command without any pre-configured scope." }, { "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "const": "fs:allow-seek" + "const": "fs:allow-seek", + "markdownDescription": "Enables the seek command without any pre-configured scope." }, { "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-stat" + "const": "fs:allow-stat", + "markdownDescription": "Enables the stat command without any pre-configured scope." }, { "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-truncate" + "const": "fs:allow-truncate", + "markdownDescription": "Enables the truncate command without any pre-configured scope." }, { "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-unwatch" + "const": "fs:allow-unwatch", + "markdownDescription": "Enables the unwatch command without any pre-configured scope." }, { "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-watch" + "const": "fs:allow-watch", + "markdownDescription": "Enables the watch command without any pre-configured scope." }, { "description": "Enables the write command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write" + "const": "fs:allow-write", + "markdownDescription": "Enables the write command without any pre-configured scope." }, { "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-file" + "const": "fs:allow-write-file", + "markdownDescription": "Enables the write_file command without any pre-configured scope." }, { "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-text-file" + "const": "fs:allow-write-text-file", + "markdownDescription": "Enables the write_text_file command without any pre-configured scope." }, { "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "const": "fs:create-app-specific-dirs" + "const": "fs:create-app-specific-dirs", + "markdownDescription": "This permissions allows to create the application specific directories.\n" }, { "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-copy-file" + "const": "fs:deny-copy-file", + "markdownDescription": "Denies the copy_file command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "fs:deny-create" + "const": "fs:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "const": "fs:deny-exists" + "const": "fs:deny-exists", + "markdownDescription": "Denies the exists command without any pre-configured scope." }, { "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-fstat" + "const": "fs:deny-fstat", + "markdownDescription": "Denies the fstat command without any pre-configured scope." }, { "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-ftruncate" + "const": "fs:deny-ftruncate", + "markdownDescription": "Denies the ftruncate command without any pre-configured scope." }, { "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-lstat" + "const": "fs:deny-lstat", + "markdownDescription": "Denies the lstat command without any pre-configured scope." }, { "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-mkdir" + "const": "fs:deny-mkdir", + "markdownDescription": "Denies the mkdir command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "fs:deny-open" + "const": "fs:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the read command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read" + "const": "fs:deny-read", + "markdownDescription": "Denies the read command without any pre-configured scope." }, { "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-dir" + "const": "fs:deny-read-dir", + "markdownDescription": "Denies the read_dir command without any pre-configured scope." }, { "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-file" + "const": "fs:deny-read-file", + "markdownDescription": "Denies the read_file command without any pre-configured scope." }, { "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file" + "const": "fs:deny-read-text-file", + "markdownDescription": "Denies the read_text_file command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines" + "const": "fs:deny-read-text-file-lines", + "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines-next" + "const": "fs:deny-read-text-file-lines-next", + "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "fs:deny-remove" + "const": "fs:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "const": "fs:deny-rename" + "const": "fs:deny-rename", + "markdownDescription": "Denies the rename command without any pre-configured scope." }, { "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "const": "fs:deny-seek" + "const": "fs:deny-seek", + "markdownDescription": "Denies the seek command without any pre-configured scope." }, { "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-stat" + "const": "fs:deny-stat", + "markdownDescription": "Denies the stat command without any pre-configured scope." }, { "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-truncate" + "const": "fs:deny-truncate", + "markdownDescription": "Denies the truncate command without any pre-configured scope." }, { "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-unwatch" + "const": "fs:deny-unwatch", + "markdownDescription": "Denies the unwatch command without any pre-configured scope." }, { "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-watch" + "const": "fs:deny-watch", + "markdownDescription": "Denies the watch command without any pre-configured scope." }, { "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-linux" + "const": "fs:deny-webview-data-linux", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-windows" + "const": "fs:deny-webview-data-windows", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "Denies the write command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write" + "const": "fs:deny-write", + "markdownDescription": "Denies the write command without any pre-configured scope." }, { "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-file" + "const": "fs:deny-write-file", + "markdownDescription": "Denies the write_file command without any pre-configured scope." }, { "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-text-file" + "const": "fs:deny-write-text-file", + "markdownDescription": "Denies the write_text_file command without any pre-configured scope." }, { "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-all" + "const": "fs:read-all", + "markdownDescription": "This enables all read related commands without any pre-configured accessible paths." }, { "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "const": "fs:read-app-specific-dirs-recursive" + "const": "fs:read-app-specific-dirs-recursive", + "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n" }, { "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-dirs" + "const": "fs:read-dirs", + "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths." }, { "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-files" + "const": "fs:read-files", + "markdownDescription": "This enables file read related commands without any pre-configured accessible paths." }, { "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-meta" + "const": "fs:read-meta", + "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths." }, { "description": "An empty permission you can use to modify the global scope.", "type": "string", - "const": "fs:scope" + "const": "fs:scope", + "markdownDescription": "An empty permission you can use to modify the global scope." }, { "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "const": "fs:scope-app" + "const": "fs:scope-app", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders." }, { "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "const": "fs:scope-app-index" + "const": "fs:scope-app-index", + "markdownDescription": "This scope permits to list all files and folders in the application directories." }, { "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "const": "fs:scope-app-recursive" + "const": "fs:scope-app-recursive", + "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "const": "fs:scope-appcache" + "const": "fs:scope-appcache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "const": "fs:scope-appcache-index" + "const": "fs:scope-appcache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder." }, { "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appcache-recursive" + "const": "fs:scope-appcache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "const": "fs:scope-appconfig" + "const": "fs:scope-appconfig", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "const": "fs:scope-appconfig-index" + "const": "fs:scope-appconfig-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appconfig-recursive" + "const": "fs:scope-appconfig-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "const": "fs:scope-appdata" + "const": "fs:scope-appdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "const": "fs:scope-appdata-index" + "const": "fs:scope-appdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appdata-recursive" + "const": "fs:scope-appdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "const": "fs:scope-applocaldata" + "const": "fs:scope-applocaldata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "const": "fs:scope-applocaldata-index" + "const": "fs:scope-applocaldata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applocaldata-recursive" + "const": "fs:scope-applocaldata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "const": "fs:scope-applog" + "const": "fs:scope-applog", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "const": "fs:scope-applog-index" + "const": "fs:scope-applog-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applog-recursive" + "const": "fs:scope-applog-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "const": "fs:scope-audio" + "const": "fs:scope-audio", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder." }, { "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "const": "fs:scope-audio-index" + "const": "fs:scope-audio-index", + "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder." }, { "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-audio-recursive" + "const": "fs:scope-audio-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "const": "fs:scope-cache" + "const": "fs:scope-cache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "const": "fs:scope-cache-index" + "const": "fs:scope-cache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder." }, { "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-cache-recursive" + "const": "fs:scope-cache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "const": "fs:scope-config" + "const": "fs:scope-config", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "const": "fs:scope-config-index" + "const": "fs:scope-config-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-config-recursive" + "const": "fs:scope-config-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "const": "fs:scope-data" + "const": "fs:scope-data", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder." }, { "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "const": "fs:scope-data-index" + "const": "fs:scope-data-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder." }, { "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-data-recursive" + "const": "fs:scope-data-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "const": "fs:scope-desktop" + "const": "fs:scope-desktop", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder." }, { "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "const": "fs:scope-desktop-index" + "const": "fs:scope-desktop-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder." }, { "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-desktop-recursive" + "const": "fs:scope-desktop-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "const": "fs:scope-document" + "const": "fs:scope-document", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder." }, { "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "const": "fs:scope-document-index" + "const": "fs:scope-document-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder." }, { "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-document-recursive" + "const": "fs:scope-document-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "const": "fs:scope-download" + "const": "fs:scope-download", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder." }, { "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "const": "fs:scope-download-index" + "const": "fs:scope-download-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder." }, { "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-download-recursive" + "const": "fs:scope-download-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "const": "fs:scope-exe" + "const": "fs:scope-exe", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder." }, { "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "const": "fs:scope-exe-index" + "const": "fs:scope-exe-index", + "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder." }, { "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-exe-recursive" + "const": "fs:scope-exe-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "const": "fs:scope-font" + "const": "fs:scope-font", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder." }, { "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "const": "fs:scope-font-index" + "const": "fs:scope-font-index", + "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder." }, { "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-font-recursive" + "const": "fs:scope-font-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "const": "fs:scope-home" + "const": "fs:scope-home", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder." }, { "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "const": "fs:scope-home-index" + "const": "fs:scope-home-index", + "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder." }, { "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-home-recursive" + "const": "fs:scope-home-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "const": "fs:scope-localdata" + "const": "fs:scope-localdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "const": "fs:scope-localdata-index" + "const": "fs:scope-localdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-localdata-recursive" + "const": "fs:scope-localdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "const": "fs:scope-log" + "const": "fs:scope-log", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder." }, { "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "const": "fs:scope-log-index" + "const": "fs:scope-log-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder." }, { "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-log-recursive" + "const": "fs:scope-log-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "const": "fs:scope-picture" + "const": "fs:scope-picture", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder." }, { "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "const": "fs:scope-picture-index" + "const": "fs:scope-picture-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder." }, { "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-picture-recursive" + "const": "fs:scope-picture-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "const": "fs:scope-public" + "const": "fs:scope-public", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder." }, { "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "const": "fs:scope-public-index" + "const": "fs:scope-public-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder." }, { "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-public-recursive" + "const": "fs:scope-public-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "const": "fs:scope-resource" + "const": "fs:scope-resource", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder." }, { "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "const": "fs:scope-resource-index" + "const": "fs:scope-resource-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder." }, { "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-resource-recursive" + "const": "fs:scope-resource-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "const": "fs:scope-runtime" + "const": "fs:scope-runtime", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder." }, { "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "const": "fs:scope-runtime-index" + "const": "fs:scope-runtime-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder." }, { "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-runtime-recursive" + "const": "fs:scope-runtime-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "const": "fs:scope-temp" + "const": "fs:scope-temp", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "const": "fs:scope-temp-index" + "const": "fs:scope-temp-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder." }, { "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-temp-recursive" + "const": "fs:scope-temp-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "const": "fs:scope-template" + "const": "fs:scope-template", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "const": "fs:scope-template-index" + "const": "fs:scope-template-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder." }, { "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-template-recursive" + "const": "fs:scope-template-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "const": "fs:scope-video" + "const": "fs:scope-video", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder." }, { "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "const": "fs:scope-video-index" + "const": "fs:scope-video-index", + "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder." }, { "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-video-recursive" + "const": "fs:scope-video-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files." }, { "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-all" + "const": "fs:write-all", + "markdownDescription": "This enables all write related commands without any pre-configured accessible paths." }, { "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-files" + "const": "fs:write-files", + "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths." } ] } @@ -1642,49 +1928,58 @@ "identifier": { "anyOf": [ { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`", "type": "string", - "const": "http:default" + "const": "http:default", + "markdownDescription": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`" }, { "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch" + "const": "http:allow-fetch", + "markdownDescription": "Enables the fetch command without any pre-configured scope." }, { "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-cancel" + "const": "http:allow-fetch-cancel", + "markdownDescription": "Enables the fetch_cancel command without any pre-configured scope." }, { "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-read-body" + "const": "http:allow-fetch-read-body", + "markdownDescription": "Enables the fetch_read_body command without any pre-configured scope." }, { "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-send" + "const": "http:allow-fetch-send", + "markdownDescription": "Enables the fetch_send command without any pre-configured scope." }, { "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch" + "const": "http:deny-fetch", + "markdownDescription": "Denies the fetch command without any pre-configured scope." }, { "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-cancel" + "const": "http:deny-fetch-cancel", + "markdownDescription": "Denies the fetch_cancel command without any pre-configured scope." }, { "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-read-body" + "const": "http:deny-fetch-read-body", + "markdownDescription": "Denies the fetch_read_body command without any pre-configured scope." }, { "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-send" + "const": "http:deny-fetch-send", + "markdownDescription": "Denies the fetch_send command without any pre-configured scope." } ] } @@ -1759,44 +2054,52 @@ "identifier": { "anyOf": [ { - "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer", + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", "type": "string", - "const": "opener:default" + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" }, { "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", "type": "string", - "const": "opener:allow-default-urls" + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." }, { "description": "Enables the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-path" + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." }, { "description": "Enables the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-url" + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." }, { "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:allow-reveal-item-in-dir" + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." }, { "description": "Denies the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-path" + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." }, { "description": "Denies the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-url" + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." }, { "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:deny-reveal-item-in-dir" + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." } ] } @@ -1919,59 +2222,70 @@ "identifier": { "anyOf": [ { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", "type": "string", - "const": "shell:default" + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" }, { "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "const": "shell:allow-execute" + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." }, { "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "const": "shell:allow-kill" + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "shell:allow-open" + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:allow-spawn" + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." }, { "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:allow-stdin-write" + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." }, { "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "const": "shell:deny-execute" + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." }, { "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "const": "shell:deny-kill" + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "shell:deny-open" + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:deny-spawn" + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." }, { "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:deny-stdin-write" + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." } ] } @@ -2157,3572 +2471,4430 @@ { "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", "type": "string", - "const": "clipboard-manager:default" + "const": "clipboard-manager:default", + "markdownDescription": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n" }, { "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-clear" + "const": "clipboard-manager:allow-clear", + "markdownDescription": "Enables the clear command without any pre-configured scope." }, { "description": "Enables the read_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-read-image" + "const": "clipboard-manager:allow-read-image", + "markdownDescription": "Enables the read_image command without any pre-configured scope." }, { "description": "Enables the read_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-read-text" + "const": "clipboard-manager:allow-read-text", + "markdownDescription": "Enables the read_text command without any pre-configured scope." }, { "description": "Enables the write_html command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-html" + "const": "clipboard-manager:allow-write-html", + "markdownDescription": "Enables the write_html command without any pre-configured scope." }, { "description": "Enables the write_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-image" + "const": "clipboard-manager:allow-write-image", + "markdownDescription": "Enables the write_image command without any pre-configured scope." }, { "description": "Enables the write_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:allow-write-text" + "const": "clipboard-manager:allow-write-text", + "markdownDescription": "Enables the write_text command without any pre-configured scope." }, { "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-clear" + "const": "clipboard-manager:deny-clear", + "markdownDescription": "Denies the clear command without any pre-configured scope." }, { "description": "Denies the read_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-read-image" + "const": "clipboard-manager:deny-read-image", + "markdownDescription": "Denies the read_image command without any pre-configured scope." }, { "description": "Denies the read_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-read-text" + "const": "clipboard-manager:deny-read-text", + "markdownDescription": "Denies the read_text command without any pre-configured scope." }, { "description": "Denies the write_html command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-html" + "const": "clipboard-manager:deny-write-html", + "markdownDescription": "Denies the write_html command without any pre-configured scope." }, { "description": "Denies the write_image command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-image" + "const": "clipboard-manager:deny-write-image", + "markdownDescription": "Denies the write_image command without any pre-configured scope." }, { "description": "Denies the write_text command without any pre-configured scope.", "type": "string", - "const": "clipboard-manager:deny-write-text" + "const": "clipboard-manager:deny-write-text", + "markdownDescription": "Denies the write_text command without any pre-configured scope." }, { - "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", "type": "string", - "const": "core:default" + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", "type": "string", - "const": "core:app:default" + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" }, { "description": "Enables the app_hide command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-app-hide" + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." }, { "description": "Enables the app_show command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-app-show" + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." }, { "description": "Enables the default_window_icon command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-default-window-icon" + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." }, { "description": "Enables the name command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-name" + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." }, { "description": "Enables the set_app_theme command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-set-app-theme" + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." }, { "description": "Enables the tauri_version command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-tauri-version" + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." }, { "description": "Enables the version command without any pre-configured scope.", "type": "string", - "const": "core:app:allow-version" + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." }, { "description": "Denies the app_hide command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-app-hide" + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." }, { "description": "Denies the app_show command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-app-show" + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." }, { "description": "Denies the default_window_icon command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-default-window-icon" + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." }, { "description": "Denies the name command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-name" + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." }, { "description": "Denies the set_app_theme command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-set-app-theme" + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." }, { "description": "Denies the tauri_version command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-tauri-version" + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." }, { "description": "Denies the version command without any pre-configured scope.", "type": "string", - "const": "core:app:deny-version" + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", "type": "string", - "const": "core:event:default" + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" }, { "description": "Enables the emit command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-emit" + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." }, { "description": "Enables the emit_to command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-emit-to" + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." }, { "description": "Enables the listen command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-listen" + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." }, { "description": "Enables the unlisten command without any pre-configured scope.", "type": "string", - "const": "core:event:allow-unlisten" + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." }, { "description": "Denies the emit command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-emit" + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." }, { "description": "Denies the emit_to command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-emit-to" + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." }, { "description": "Denies the listen command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-listen" + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." }, { "description": "Denies the unlisten command without any pre-configured scope.", "type": "string", - "const": "core:event:deny-unlisten" + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", "type": "string", - "const": "core:image:default" + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" }, { "description": "Enables the from_bytes command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-from-bytes" + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." }, { "description": "Enables the from_path command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-from-path" + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-new" + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the rgba command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-rgba" + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." }, { "description": "Enables the size command without any pre-configured scope.", "type": "string", - "const": "core:image:allow-size" + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." }, { "description": "Denies the from_bytes command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-from-bytes" + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." }, { "description": "Denies the from_path command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-from-path" + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-new" + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the rgba command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-rgba" + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." }, { "description": "Denies the size command without any pre-configured scope.", "type": "string", - "const": "core:image:deny-size" + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", "type": "string", - "const": "core:menu:default" + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" }, { "description": "Enables the append command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-append" + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." }, { "description": "Enables the create_default command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-create-default" + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." }, { "description": "Enables the get command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-get" + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." }, { "description": "Enables the insert command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-insert" + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." }, { "description": "Enables the is_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-is-checked" + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." }, { "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-is-enabled" + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." }, { "description": "Enables the items command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-items" + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-new" + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the popup command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-popup" + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." }, { "description": "Enables the prepend command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-prepend" + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-remove" + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the remove_at command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-remove-at" + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." }, { "description": "Enables the set_accelerator command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-accelerator" + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." }, { "description": "Enables the set_as_app_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-app-menu" + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." }, { "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-help-menu-for-nsapp" + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." }, { "description": "Enables the set_as_window_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-window-menu" + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." }, { "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-as-windows-menu-for-nsapp" + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." }, { "description": "Enables the set_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-checked" + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." }, { "description": "Enables the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-enabled" + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-icon" + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_text command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-set-text" + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." }, { "description": "Enables the text command without any pre-configured scope.", "type": "string", - "const": "core:menu:allow-text" + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." }, { "description": "Denies the append command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-append" + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." }, { "description": "Denies the create_default command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-create-default" + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." }, { "description": "Denies the get command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-get" + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." }, { "description": "Denies the insert command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-insert" + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." }, { "description": "Denies the is_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-is-checked" + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." }, { "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-is-enabled" + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." }, { "description": "Denies the items command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-items" + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-new" + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the popup command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-popup" + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." }, { "description": "Denies the prepend command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-prepend" + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-remove" + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the remove_at command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-remove-at" + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." }, { "description": "Denies the set_accelerator command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-accelerator" + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." }, { "description": "Denies the set_as_app_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-app-menu" + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." }, { "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-help-menu-for-nsapp" + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." }, { "description": "Denies the set_as_window_menu command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-window-menu" + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." }, { "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-as-windows-menu-for-nsapp" + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." }, { "description": "Denies the set_checked command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-checked" + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." }, { "description": "Denies the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-enabled" + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-icon" + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_text command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-set-text" + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." }, { "description": "Denies the text command without any pre-configured scope.", "type": "string", - "const": "core:menu:deny-text" + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", "type": "string", - "const": "core:path:default" + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" }, { "description": "Enables the basename command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-basename" + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." }, { "description": "Enables the dirname command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-dirname" + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." }, { "description": "Enables the extname command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-extname" + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." }, { "description": "Enables the is_absolute command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-is-absolute" + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." }, { "description": "Enables the join command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-join" + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." }, { "description": "Enables the normalize command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-normalize" + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." }, { "description": "Enables the resolve command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-resolve" + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." }, { "description": "Enables the resolve_directory command without any pre-configured scope.", "type": "string", - "const": "core:path:allow-resolve-directory" + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." }, { "description": "Denies the basename command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-basename" + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." }, { "description": "Denies the dirname command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-dirname" + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." }, { "description": "Denies the extname command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-extname" + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." }, { "description": "Denies the is_absolute command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-is-absolute" + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." }, { "description": "Denies the join command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-join" + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." }, { "description": "Denies the normalize command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-normalize" + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." }, { "description": "Denies the resolve command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-resolve" + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." }, { "description": "Denies the resolve_directory command without any pre-configured scope.", "type": "string", - "const": "core:path:deny-resolve-directory" + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", "type": "string", - "const": "core:resources:default" + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" }, { "description": "Enables the close command without any pre-configured scope.", "type": "string", - "const": "core:resources:allow-close" + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." }, { "description": "Denies the close command without any pre-configured scope.", "type": "string", - "const": "core:resources:deny-close" + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`", "type": "string", - "const": "core:tray:default" + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`" }, { "description": "Enables the get_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-get-by-id" + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." }, { "description": "Enables the new command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-new" + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." }, { "description": "Enables the remove_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-remove-by-id" + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-icon" + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_icon_as_template command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-icon-as-template" + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." }, { "description": "Enables the set_menu command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-menu" + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." }, { "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-show-menu-on-left-click" + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." }, { "description": "Enables the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-temp-dir-path" + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." }, { "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-title" + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." }, { "description": "Enables the set_tooltip command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-tooltip" + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." }, { "description": "Enables the set_visible command without any pre-configured scope.", "type": "string", - "const": "core:tray:allow-set-visible" + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." }, { "description": "Denies the get_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-get-by-id" + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." }, { "description": "Denies the new command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-new" + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." }, { "description": "Denies the remove_by_id command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-remove-by-id" + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-icon" + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_icon_as_template command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-icon-as-template" + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." }, { "description": "Denies the set_menu command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-menu" + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." }, { "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-show-menu-on-left-click" + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." }, { "description": "Denies the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-temp-dir-path" + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." }, { "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-title" + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." }, { "description": "Denies the set_tooltip command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-tooltip" + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." }, { "description": "Denies the set_visible command without any pre-configured scope.", "type": "string", - "const": "core:tray:deny-set-visible" + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", "type": "string", - "const": "core:webview:default" + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" }, { "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-clear-all-browsing-data" + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." }, { "description": "Enables the create_webview command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-create-webview" + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." }, { "description": "Enables the create_webview_window command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-create-webview-window" + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." }, { "description": "Enables the get_all_webviews command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-get-all-webviews" + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." }, { "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-internal-toggle-devtools" + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." }, { "description": "Enables the print command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-print" + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." }, { "description": "Enables the reparent command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-reparent" + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." }, { "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-focus" + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." }, { "description": "Enables the set_webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-position" + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." }, { "description": "Enables the set_webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-size" + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." }, { "description": "Enables the set_webview_zoom command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-set-webview-zoom" + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." }, { "description": "Enables the webview_close command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-close" + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." }, { "description": "Enables the webview_hide command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-hide" + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." }, { "description": "Enables the webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-position" + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." }, { "description": "Enables the webview_show command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-show" + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." }, { "description": "Enables the webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:allow-webview-size" + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." }, { "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-clear-all-browsing-data" + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." }, { "description": "Denies the create_webview command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-create-webview" + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." }, { "description": "Denies the create_webview_window command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-create-webview-window" + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." }, { "description": "Denies the get_all_webviews command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-get-all-webviews" + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." }, { "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-internal-toggle-devtools" + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." }, { "description": "Denies the print command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-print" + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." }, { "description": "Denies the reparent command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-reparent" + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." }, { "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-focus" + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." }, { "description": "Denies the set_webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-position" + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." }, { "description": "Denies the set_webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-size" + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." }, { "description": "Denies the set_webview_zoom command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-set-webview-zoom" + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." }, { "description": "Denies the webview_close command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-close" + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." }, { "description": "Denies the webview_hide command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-hide" + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." }, { "description": "Denies the webview_position command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-position" + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." }, { "description": "Denies the webview_show command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-show" + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." }, { "description": "Denies the webview_size command without any pre-configured scope.", "type": "string", - "const": "core:webview:deny-webview-size" + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." }, { - "description": "Default permissions for the plugin.", + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`", "type": "string", - "const": "core:window:default" + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`" }, { "description": "Enables the available_monitors command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-available-monitors" + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." }, { "description": "Enables the center command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-center" + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." }, { "description": "Enables the close command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-close" + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-create" + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the current_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-current-monitor" + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." }, { "description": "Enables the cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-cursor-position" + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." }, { "description": "Enables the destroy command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-destroy" + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." }, { "description": "Enables the get_all_windows command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-get-all-windows" + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." }, { "description": "Enables the hide command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-hide" + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." }, { "description": "Enables the inner_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-inner-position" + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." }, { "description": "Enables the inner_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-inner-size" + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." }, { "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-internal-toggle-maximize" + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." }, { "description": "Enables the is_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-closable" + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." }, { "description": "Enables the is_decorated command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-decorated" + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." }, { "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-enabled" + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." }, { "description": "Enables the is_focused command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-focused" + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." }, { "description": "Enables the is_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-fullscreen" + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." }, { "description": "Enables the is_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-maximizable" + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." }, { "description": "Enables the is_maximized command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-maximized" + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." }, { "description": "Enables the is_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-minimizable" + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." }, { "description": "Enables the is_minimized command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-minimized" + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." }, { "description": "Enables the is_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-resizable" + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." }, { "description": "Enables the is_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-is-visible" + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." }, { "description": "Enables the maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-maximize" + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." }, { "description": "Enables the minimize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-minimize" + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." }, { "description": "Enables the monitor_from_point command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-monitor-from-point" + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." }, { "description": "Enables the outer_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-outer-position" + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." }, { "description": "Enables the outer_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-outer-size" + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." }, { "description": "Enables the primary_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-primary-monitor" + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." }, { "description": "Enables the request_user_attention command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-request-user-attention" + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." }, { "description": "Enables the scale_factor command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-scale-factor" + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." }, { "description": "Enables the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-always-on-bottom" + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." }, { "description": "Enables the set_always_on_top command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-always-on-top" + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." }, { "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-closable" + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." }, { "description": "Enables the set_content_protected command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-content-protected" + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." }, { "description": "Enables the set_cursor_grab command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-grab" + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." }, { "description": "Enables the set_cursor_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-icon" + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." }, { "description": "Enables the set_cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-position" + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." }, { "description": "Enables the set_cursor_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-cursor-visible" + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." }, { "description": "Enables the set_decorations command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-decorations" + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." }, { "description": "Enables the set_effects command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-effects" + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." }, { "description": "Enables the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-enabled" + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." }, { "description": "Enables the set_focus command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-focus" + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." }, { "description": "Enables the set_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-fullscreen" + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." }, { "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-icon" + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." }, { "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-ignore-cursor-events" + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." }, { "description": "Enables the set_max_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-max-size" + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." }, { "description": "Enables the set_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-maximizable" + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." }, { "description": "Enables the set_min_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-min-size" + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." }, { "description": "Enables the set_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-minimizable" + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." }, { "description": "Enables the set_position command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-position" + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." }, { "description": "Enables the set_progress_bar command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-progress-bar" + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." }, { "description": "Enables the set_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-resizable" + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." }, { "description": "Enables the set_shadow command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-shadow" + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." }, { "description": "Enables the set_size command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-size" + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." }, { "description": "Enables the set_size_constraints command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-size-constraints" + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." }, { "description": "Enables the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-skip-taskbar" + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." }, { "description": "Enables the set_theme command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-theme" + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." }, { "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-title" + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." }, { "description": "Enables the set_title_bar_style command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-title-bar-style" + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." }, { "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-set-visible-on-all-workspaces" + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." }, { "description": "Enables the show command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-show" + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." }, { "description": "Enables the start_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-start-dragging" + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." }, { "description": "Enables the start_resize_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-start-resize-dragging" + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." }, { "description": "Enables the theme command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-theme" + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." }, { "description": "Enables the title command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-title" + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." }, { "description": "Enables the toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-toggle-maximize" + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." }, { "description": "Enables the unmaximize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-unmaximize" + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." }, { "description": "Enables the unminimize command without any pre-configured scope.", "type": "string", - "const": "core:window:allow-unminimize" + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." }, { "description": "Denies the available_monitors command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-available-monitors" + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." }, { "description": "Denies the center command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-center" + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." }, { "description": "Denies the close command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-close" + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-create" + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the current_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-current-monitor" + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." }, { "description": "Denies the cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-cursor-position" + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." }, { "description": "Denies the destroy command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-destroy" + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." }, { "description": "Denies the get_all_windows command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-get-all-windows" + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." }, { "description": "Denies the hide command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-hide" + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." }, { "description": "Denies the inner_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-inner-position" + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." }, { "description": "Denies the inner_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-inner-size" + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." }, { "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-internal-toggle-maximize" + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." }, { "description": "Denies the is_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-closable" + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." }, { "description": "Denies the is_decorated command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-decorated" + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." }, { "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-enabled" + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." }, { "description": "Denies the is_focused command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-focused" + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." }, { "description": "Denies the is_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-fullscreen" + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." }, { "description": "Denies the is_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-maximizable" + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." }, { "description": "Denies the is_maximized command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-maximized" + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." }, { "description": "Denies the is_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-minimizable" + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." }, { "description": "Denies the is_minimized command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-minimized" + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." }, { "description": "Denies the is_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-resizable" + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." }, { "description": "Denies the is_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-is-visible" + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." }, { "description": "Denies the maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-maximize" + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." }, { "description": "Denies the minimize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-minimize" + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." }, { "description": "Denies the monitor_from_point command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-monitor-from-point" + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." }, { "description": "Denies the outer_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-outer-position" + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." }, { "description": "Denies the outer_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-outer-size" + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." }, { "description": "Denies the primary_monitor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-primary-monitor" + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." }, { "description": "Denies the request_user_attention command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-request-user-attention" + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." }, { "description": "Denies the scale_factor command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-scale-factor" + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." }, { "description": "Denies the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-always-on-bottom" + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." }, { "description": "Denies the set_always_on_top command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-always-on-top" + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." }, { "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-closable" + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." }, { "description": "Denies the set_content_protected command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-content-protected" + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." }, { "description": "Denies the set_cursor_grab command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-grab" + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." }, { "description": "Denies the set_cursor_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-icon" + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." }, { "description": "Denies the set_cursor_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-position" + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." }, { "description": "Denies the set_cursor_visible command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-cursor-visible" + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." }, { "description": "Denies the set_decorations command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-decorations" + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." }, { "description": "Denies the set_effects command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-effects" + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." }, { "description": "Denies the set_enabled command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-enabled" + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." }, { "description": "Denies the set_focus command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-focus" + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." }, { "description": "Denies the set_fullscreen command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-fullscreen" + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." }, { "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-icon" + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." }, { "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-ignore-cursor-events" + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." }, { "description": "Denies the set_max_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-max-size" + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." }, { "description": "Denies the set_maximizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-maximizable" + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." }, { "description": "Denies the set_min_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-min-size" + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." }, { "description": "Denies the set_minimizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-minimizable" + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." }, { "description": "Denies the set_position command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-position" + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." }, { "description": "Denies the set_progress_bar command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-progress-bar" + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." }, { "description": "Denies the set_resizable command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-resizable" + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." }, { "description": "Denies the set_shadow command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-shadow" + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." }, { "description": "Denies the set_size command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-size" + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." }, { "description": "Denies the set_size_constraints command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-size-constraints" + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." }, { "description": "Denies the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-skip-taskbar" + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." }, { "description": "Denies the set_theme command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-theme" + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." }, { "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-title" + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." }, { "description": "Denies the set_title_bar_style command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-title-bar-style" + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." }, { "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-set-visible-on-all-workspaces" + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." }, { "description": "Denies the show command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-show" + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." }, { "description": "Denies the start_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-start-dragging" + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." }, { "description": "Denies the start_resize_dragging command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-start-resize-dragging" + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." }, { "description": "Denies the theme command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-theme" + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." }, { "description": "Denies the title command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-title" + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." }, { "description": "Denies the toggle_maximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-toggle-maximize" + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." }, { "description": "Denies the unmaximize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-unmaximize" + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." }, { "description": "Denies the unminimize command without any pre-configured scope.", "type": "string", - "const": "core:window:deny-unminimize" + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." }, { - "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n\n#### This default permission set includes:\n\n- `allow-ask`\n- `allow-confirm`\n- `allow-message`\n- `allow-save`\n- `allow-open`", "type": "string", - "const": "dialog:default" + "const": "dialog:default", + "markdownDescription": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n\n#### This default permission set includes:\n\n- `allow-ask`\n- `allow-confirm`\n- `allow-message`\n- `allow-save`\n- `allow-open`" }, { "description": "Enables the ask command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-ask" + "const": "dialog:allow-ask", + "markdownDescription": "Enables the ask command without any pre-configured scope." }, { "description": "Enables the confirm command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-confirm" + "const": "dialog:allow-confirm", + "markdownDescription": "Enables the confirm command without any pre-configured scope." }, { "description": "Enables the message command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-message" + "const": "dialog:allow-message", + "markdownDescription": "Enables the message command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-open" + "const": "dialog:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the save command without any pre-configured scope.", "type": "string", - "const": "dialog:allow-save" + "const": "dialog:allow-save", + "markdownDescription": "Enables the save command without any pre-configured scope." }, { "description": "Denies the ask command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-ask" + "const": "dialog:deny-ask", + "markdownDescription": "Denies the ask command without any pre-configured scope." }, { "description": "Denies the confirm command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-confirm" + "const": "dialog:deny-confirm", + "markdownDescription": "Denies the confirm command without any pre-configured scope." }, { "description": "Denies the message command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-message" + "const": "dialog:deny-message", + "markdownDescription": "Denies the message command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-open" + "const": "dialog:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the save command without any pre-configured scope.", "type": "string", - "const": "dialog:deny-save" + "const": "dialog:deny-save", + "markdownDescription": "Denies the save command without any pre-configured scope." }, { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", "type": "string", - "const": "fs:default" + "const": "fs:default", + "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" }, { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`", "type": "string", - "const": "fs:allow-app-meta" + "const": "fs:allow-app-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-index`" }, { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-meta-recursive" + "const": "fs:allow-app-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-read" + "const": "fs:allow-app-read", + "markdownDescription": "This allows non-recursive read access to the application folders.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app`" }, { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-read-recursive" + "const": "fs:allow-app-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`", "type": "string", - "const": "fs:allow-app-write" + "const": "fs:allow-app-write", + "markdownDescription": "This allows non-recursive write access to the application folders.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app`" }, { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`", "type": "string", - "const": "fs:allow-app-write-recursive" + "const": "fs:allow-app-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete application folders, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-app-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`", "type": "string", - "const": "fs:allow-appcache-meta" + "const": "fs:allow-appcache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-meta-recursive" + "const": "fs:allow-appcache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-read" + "const": "fs:allow-appcache-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-read-recursive" + "const": "fs:allow-appcache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`", "type": "string", - "const": "fs:allow-appcache-write" + "const": "fs:allow-appcache-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache`" }, { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`", "type": "string", - "const": "fs:allow-appcache-write-recursive" + "const": "fs:allow-appcache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appcache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`", "type": "string", - "const": "fs:allow-appconfig-meta" + "const": "fs:allow-appconfig-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-meta-recursive" + "const": "fs:allow-appconfig-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-read" + "const": "fs:allow-appconfig-read", + "markdownDescription": "This allows non-recursive read access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-read-recursive" + "const": "fs:allow-appconfig-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`", "type": "string", - "const": "fs:allow-appconfig-write" + "const": "fs:allow-appconfig-write", + "markdownDescription": "This allows non-recursive write access to the `$APPCONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig`" }, { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`", "type": "string", - "const": "fs:allow-appconfig-write-recursive" + "const": "fs:allow-appconfig-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appconfig-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`", "type": "string", - "const": "fs:allow-appdata-meta" + "const": "fs:allow-appdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-meta-recursive" + "const": "fs:allow-appdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-read" + "const": "fs:allow-appdata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-read-recursive" + "const": "fs:allow-appdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`", "type": "string", - "const": "fs:allow-appdata-write" + "const": "fs:allow-appdata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata`" }, { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`", "type": "string", - "const": "fs:allow-appdata-write-recursive" + "const": "fs:allow-appdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-appdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`", "type": "string", - "const": "fs:allow-applocaldata-meta" + "const": "fs:allow-applocaldata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" + "const": "fs:allow-applocaldata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-read" + "const": "fs:allow-applocaldata-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-read-recursive" + "const": "fs:allow-applocaldata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`", "type": "string", - "const": "fs:allow-applocaldata-write" + "const": "fs:allow-applocaldata-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata`" }, { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`", "type": "string", - "const": "fs:allow-applocaldata-write-recursive" + "const": "fs:allow-applocaldata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applocaldata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`", "type": "string", - "const": "fs:allow-applog-meta" + "const": "fs:allow-applog-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-index`" }, { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-meta-recursive" + "const": "fs:allow-applog-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-read" + "const": "fs:allow-applog-read", + "markdownDescription": "This allows non-recursive read access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog`" }, { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-read-recursive" + "const": "fs:allow-applog-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`", "type": "string", - "const": "fs:allow-applog-write" + "const": "fs:allow-applog-write", + "markdownDescription": "This allows non-recursive write access to the `$APPLOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog`" }, { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`", "type": "string", - "const": "fs:allow-applog-write-recursive" + "const": "fs:allow-applog-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-applog-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`", "type": "string", - "const": "fs:allow-audio-meta" + "const": "fs:allow-audio-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-index`" }, { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-meta-recursive" + "const": "fs:allow-audio-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-read" + "const": "fs:allow-audio-read", + "markdownDescription": "This allows non-recursive read access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio`" }, { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-read-recursive" + "const": "fs:allow-audio-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`", "type": "string", - "const": "fs:allow-audio-write" + "const": "fs:allow-audio-write", + "markdownDescription": "This allows non-recursive write access to the `$AUDIO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio`" }, { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`", "type": "string", - "const": "fs:allow-audio-write-recursive" + "const": "fs:allow-audio-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-audio-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`", "type": "string", - "const": "fs:allow-cache-meta" + "const": "fs:allow-cache-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-meta-recursive" + "const": "fs:allow-cache-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-read" + "const": "fs:allow-cache-read", + "markdownDescription": "This allows non-recursive read access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache`" }, { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-read-recursive" + "const": "fs:allow-cache-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`", "type": "string", - "const": "fs:allow-cache-write" + "const": "fs:allow-cache-write", + "markdownDescription": "This allows non-recursive write access to the `$CACHE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache`" }, { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`", "type": "string", - "const": "fs:allow-cache-write-recursive" + "const": "fs:allow-cache-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-cache-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`", "type": "string", - "const": "fs:allow-config-meta" + "const": "fs:allow-config-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-index`" }, { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-meta-recursive" + "const": "fs:allow-config-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-read" + "const": "fs:allow-config-read", + "markdownDescription": "This allows non-recursive read access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config`" }, { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-read-recursive" + "const": "fs:allow-config-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`", "type": "string", - "const": "fs:allow-config-write" + "const": "fs:allow-config-write", + "markdownDescription": "This allows non-recursive write access to the `$CONFIG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config`" }, { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`", "type": "string", - "const": "fs:allow-config-write-recursive" + "const": "fs:allow-config-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-config-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`", "type": "string", - "const": "fs:allow-data-meta" + "const": "fs:allow-data-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-meta-recursive" + "const": "fs:allow-data-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-read" + "const": "fs:allow-data-read", + "markdownDescription": "This allows non-recursive read access to the `$DATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data`" }, { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-read-recursive" + "const": "fs:allow-data-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`", "type": "string", - "const": "fs:allow-data-write" + "const": "fs:allow-data-write", + "markdownDescription": "This allows non-recursive write access to the `$DATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data`" }, { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`", "type": "string", - "const": "fs:allow-data-write-recursive" + "const": "fs:allow-data-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-data-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`", "type": "string", - "const": "fs:allow-desktop-meta" + "const": "fs:allow-desktop-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-meta-recursive" + "const": "fs:allow-desktop-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-read" + "const": "fs:allow-desktop-read", + "markdownDescription": "This allows non-recursive read access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-read-recursive" + "const": "fs:allow-desktop-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`", "type": "string", - "const": "fs:allow-desktop-write" + "const": "fs:allow-desktop-write", + "markdownDescription": "This allows non-recursive write access to the `$DESKTOP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop`" }, { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`", "type": "string", - "const": "fs:allow-desktop-write-recursive" + "const": "fs:allow-desktop-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-desktop-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`", "type": "string", - "const": "fs:allow-document-meta" + "const": "fs:allow-document-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-meta-recursive" + "const": "fs:allow-document-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-read" + "const": "fs:allow-document-read", + "markdownDescription": "This allows non-recursive read access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document`" }, { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-read-recursive" + "const": "fs:allow-document-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`", "type": "string", - "const": "fs:allow-document-write" + "const": "fs:allow-document-write", + "markdownDescription": "This allows non-recursive write access to the `$DOCUMENT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document`" }, { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`", "type": "string", - "const": "fs:allow-document-write-recursive" + "const": "fs:allow-document-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-document-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`", "type": "string", - "const": "fs:allow-download-meta" + "const": "fs:allow-download-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-index`" }, { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-meta-recursive" + "const": "fs:allow-download-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-read" + "const": "fs:allow-download-read", + "markdownDescription": "This allows non-recursive read access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download`" }, { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-read-recursive" + "const": "fs:allow-download-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`", "type": "string", - "const": "fs:allow-download-write" + "const": "fs:allow-download-write", + "markdownDescription": "This allows non-recursive write access to the `$DOWNLOAD` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download`" }, { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`", "type": "string", - "const": "fs:allow-download-write-recursive" + "const": "fs:allow-download-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-download-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`", "type": "string", - "const": "fs:allow-exe-meta" + "const": "fs:allow-exe-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-index`" }, { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-meta-recursive" + "const": "fs:allow-exe-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-read" + "const": "fs:allow-exe-read", + "markdownDescription": "This allows non-recursive read access to the `$EXE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe`" }, { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-read-recursive" + "const": "fs:allow-exe-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`", "type": "string", - "const": "fs:allow-exe-write" + "const": "fs:allow-exe-write", + "markdownDescription": "This allows non-recursive write access to the `$EXE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe`" }, { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`", "type": "string", - "const": "fs:allow-exe-write-recursive" + "const": "fs:allow-exe-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-exe-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`", "type": "string", - "const": "fs:allow-font-meta" + "const": "fs:allow-font-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-index`" }, { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-meta-recursive" + "const": "fs:allow-font-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-read" + "const": "fs:allow-font-read", + "markdownDescription": "This allows non-recursive read access to the `$FONT` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font`" }, { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-read-recursive" + "const": "fs:allow-font-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`", "type": "string", - "const": "fs:allow-font-write" + "const": "fs:allow-font-write", + "markdownDescription": "This allows non-recursive write access to the `$FONT` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font`" }, { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`", "type": "string", - "const": "fs:allow-font-write-recursive" + "const": "fs:allow-font-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-font-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`", "type": "string", - "const": "fs:allow-home-meta" + "const": "fs:allow-home-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-index`" }, { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-meta-recursive" + "const": "fs:allow-home-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-read" + "const": "fs:allow-home-read", + "markdownDescription": "This allows non-recursive read access to the `$HOME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home`" }, { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-read-recursive" + "const": "fs:allow-home-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`", "type": "string", - "const": "fs:allow-home-write" + "const": "fs:allow-home-write", + "markdownDescription": "This allows non-recursive write access to the `$HOME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home`" }, { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`", "type": "string", - "const": "fs:allow-home-write-recursive" + "const": "fs:allow-home-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-home-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`", "type": "string", - "const": "fs:allow-localdata-meta" + "const": "fs:allow-localdata-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-meta-recursive" + "const": "fs:allow-localdata-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-read" + "const": "fs:allow-localdata-read", + "markdownDescription": "This allows non-recursive read access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-read-recursive" + "const": "fs:allow-localdata-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`", "type": "string", - "const": "fs:allow-localdata-write" + "const": "fs:allow-localdata-write", + "markdownDescription": "This allows non-recursive write access to the `$LOCALDATA` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata`" }, { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`", "type": "string", - "const": "fs:allow-localdata-write-recursive" + "const": "fs:allow-localdata-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-localdata-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`", "type": "string", - "const": "fs:allow-log-meta" + "const": "fs:allow-log-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-index`" }, { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-meta-recursive" + "const": "fs:allow-log-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-read" + "const": "fs:allow-log-read", + "markdownDescription": "This allows non-recursive read access to the `$LOG` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log`" }, { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-read-recursive" + "const": "fs:allow-log-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`", "type": "string", - "const": "fs:allow-log-write" + "const": "fs:allow-log-write", + "markdownDescription": "This allows non-recursive write access to the `$LOG` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log`" }, { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`", "type": "string", - "const": "fs:allow-log-write-recursive" + "const": "fs:allow-log-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-log-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`", "type": "string", - "const": "fs:allow-picture-meta" + "const": "fs:allow-picture-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-meta-recursive" + "const": "fs:allow-picture-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-read" + "const": "fs:allow-picture-read", + "markdownDescription": "This allows non-recursive read access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture`" }, { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-read-recursive" + "const": "fs:allow-picture-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`", "type": "string", - "const": "fs:allow-picture-write" + "const": "fs:allow-picture-write", + "markdownDescription": "This allows non-recursive write access to the `$PICTURE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture`" }, { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`", "type": "string", - "const": "fs:allow-picture-write-recursive" + "const": "fs:allow-picture-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-picture-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`", "type": "string", - "const": "fs:allow-public-meta" + "const": "fs:allow-public-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-index`" }, { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-meta-recursive" + "const": "fs:allow-public-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-read" + "const": "fs:allow-public-read", + "markdownDescription": "This allows non-recursive read access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public`" }, { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-read-recursive" + "const": "fs:allow-public-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`", "type": "string", - "const": "fs:allow-public-write" + "const": "fs:allow-public-write", + "markdownDescription": "This allows non-recursive write access to the `$PUBLIC` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public`" }, { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`", "type": "string", - "const": "fs:allow-public-write-recursive" + "const": "fs:allow-public-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-public-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`", "type": "string", - "const": "fs:allow-resource-meta" + "const": "fs:allow-resource-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-meta-recursive" + "const": "fs:allow-resource-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-read" + "const": "fs:allow-resource-read", + "markdownDescription": "This allows non-recursive read access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource`" }, { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-read-recursive" + "const": "fs:allow-resource-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`", "type": "string", - "const": "fs:allow-resource-write" + "const": "fs:allow-resource-write", + "markdownDescription": "This allows non-recursive write access to the `$RESOURCE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource`" }, { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`", "type": "string", - "const": "fs:allow-resource-write-recursive" + "const": "fs:allow-resource-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-resource-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`", "type": "string", - "const": "fs:allow-runtime-meta" + "const": "fs:allow-runtime-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-index`" }, { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-meta-recursive" + "const": "fs:allow-runtime-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-read" + "const": "fs:allow-runtime-read", + "markdownDescription": "This allows non-recursive read access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-read-recursive" + "const": "fs:allow-runtime-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`", "type": "string", - "const": "fs:allow-runtime-write" + "const": "fs:allow-runtime-write", + "markdownDescription": "This allows non-recursive write access to the `$RUNTIME` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime`" }, { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`", "type": "string", - "const": "fs:allow-runtime-write-recursive" + "const": "fs:allow-runtime-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-runtime-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`", "type": "string", - "const": "fs:allow-temp-meta" + "const": "fs:allow-temp-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-meta-recursive" + "const": "fs:allow-temp-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-read" + "const": "fs:allow-temp-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp`" }, { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-read-recursive" + "const": "fs:allow-temp-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`", "type": "string", - "const": "fs:allow-temp-write" + "const": "fs:allow-temp-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMP` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp`" }, { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`", "type": "string", - "const": "fs:allow-temp-write-recursive" + "const": "fs:allow-temp-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-temp-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`", "type": "string", - "const": "fs:allow-template-meta" + "const": "fs:allow-template-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-index`" }, { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-meta-recursive" + "const": "fs:allow-template-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-read" + "const": "fs:allow-template-read", + "markdownDescription": "This allows non-recursive read access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template`" }, { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-read-recursive" + "const": "fs:allow-template-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`", "type": "string", - "const": "fs:allow-template-write" + "const": "fs:allow-template-write", + "markdownDescription": "This allows non-recursive write access to the `$TEMPLATE` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template`" }, { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`", "type": "string", - "const": "fs:allow-template-write-recursive" + "const": "fs:allow-template-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-template-recursive`" }, { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`", "type": "string", - "const": "fs:allow-video-meta" + "const": "fs:allow-video-meta", + "markdownDescription": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-index`" }, { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-meta-recursive" + "const": "fs:allow-video-meta-recursive", + "markdownDescription": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.\n#### This permission set includes:\n\n- `read-meta`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-read" + "const": "fs:allow-video-read", + "markdownDescription": "This allows non-recursive read access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video`" }, { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-read-recursive" + "const": "fs:allow-video-read-recursive", + "markdownDescription": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `read-all`\n- `scope-video-recursive`" }, { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`", "type": "string", - "const": "fs:allow-video-write" + "const": "fs:allow-video-write", + "markdownDescription": "This allows non-recursive write access to the `$VIDEO` folder.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video`" }, { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`", "type": "string", - "const": "fs:allow-video-write-recursive" + "const": "fs:allow-video-write-recursive", + "markdownDescription": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.\n#### This permission set includes:\n\n- `write-all`\n- `scope-video-recursive`" }, { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`", "type": "string", - "const": "fs:deny-default" + "const": "fs:deny-default", + "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`" }, { "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-copy-file" + "const": "fs:allow-copy-file", + "markdownDescription": "Enables the copy_file command without any pre-configured scope." }, { "description": "Enables the create command without any pre-configured scope.", "type": "string", - "const": "fs:allow-create" + "const": "fs:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." }, { "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "const": "fs:allow-exists" + "const": "fs:allow-exists", + "markdownDescription": "Enables the exists command without any pre-configured scope." }, { "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-fstat" + "const": "fs:allow-fstat", + "markdownDescription": "Enables the fstat command without any pre-configured scope." }, { "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-ftruncate" + "const": "fs:allow-ftruncate", + "markdownDescription": "Enables the ftruncate command without any pre-configured scope." }, { "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-lstat" + "const": "fs:allow-lstat", + "markdownDescription": "Enables the lstat command without any pre-configured scope." }, { "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-mkdir" + "const": "fs:allow-mkdir", + "markdownDescription": "Enables the mkdir command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "fs:allow-open" + "const": "fs:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the read command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read" + "const": "fs:allow-read", + "markdownDescription": "Enables the read command without any pre-configured scope." }, { "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-dir" + "const": "fs:allow-read-dir", + "markdownDescription": "Enables the read_dir command without any pre-configured scope." }, { "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-file" + "const": "fs:allow-read-file", + "markdownDescription": "Enables the read_file command without any pre-configured scope." }, { "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file" + "const": "fs:allow-read-text-file", + "markdownDescription": "Enables the read_text_file command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines" + "const": "fs:allow-read-text-file-lines", + "markdownDescription": "Enables the read_text_file_lines command without any pre-configured scope." }, { "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:allow-read-text-file-lines-next" + "const": "fs:allow-read-text-file-lines-next", + "markdownDescription": "Enables the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "const": "fs:allow-remove" + "const": "fs:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." }, { "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "const": "fs:allow-rename" + "const": "fs:allow-rename", + "markdownDescription": "Enables the rename command without any pre-configured scope." }, { "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "const": "fs:allow-seek" + "const": "fs:allow-seek", + "markdownDescription": "Enables the seek command without any pre-configured scope." }, { "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "const": "fs:allow-stat" + "const": "fs:allow-stat", + "markdownDescription": "Enables the stat command without any pre-configured scope." }, { "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:allow-truncate" + "const": "fs:allow-truncate", + "markdownDescription": "Enables the truncate command without any pre-configured scope." }, { "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-unwatch" + "const": "fs:allow-unwatch", + "markdownDescription": "Enables the unwatch command without any pre-configured scope." }, { "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "const": "fs:allow-watch" + "const": "fs:allow-watch", + "markdownDescription": "Enables the watch command without any pre-configured scope." }, { "description": "Enables the write command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write" + "const": "fs:allow-write", + "markdownDescription": "Enables the write command without any pre-configured scope." }, { "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-file" + "const": "fs:allow-write-file", + "markdownDescription": "Enables the write_file command without any pre-configured scope." }, { "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:allow-write-text-file" + "const": "fs:allow-write-text-file", + "markdownDescription": "Enables the write_text_file command without any pre-configured scope." }, { "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "const": "fs:create-app-specific-dirs" + "const": "fs:create-app-specific-dirs", + "markdownDescription": "This permissions allows to create the application specific directories.\n" }, { "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-copy-file" + "const": "fs:deny-copy-file", + "markdownDescription": "Denies the copy_file command without any pre-configured scope." }, { "description": "Denies the create command without any pre-configured scope.", "type": "string", - "const": "fs:deny-create" + "const": "fs:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." }, { "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "const": "fs:deny-exists" + "const": "fs:deny-exists", + "markdownDescription": "Denies the exists command without any pre-configured scope." }, { "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-fstat" + "const": "fs:deny-fstat", + "markdownDescription": "Denies the fstat command without any pre-configured scope." }, { "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-ftruncate" + "const": "fs:deny-ftruncate", + "markdownDescription": "Denies the ftruncate command without any pre-configured scope." }, { "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-lstat" + "const": "fs:deny-lstat", + "markdownDescription": "Denies the lstat command without any pre-configured scope." }, { "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-mkdir" + "const": "fs:deny-mkdir", + "markdownDescription": "Denies the mkdir command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "fs:deny-open" + "const": "fs:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the read command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read" + "const": "fs:deny-read", + "markdownDescription": "Denies the read command without any pre-configured scope." }, { "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-dir" + "const": "fs:deny-read-dir", + "markdownDescription": "Denies the read_dir command without any pre-configured scope." }, { "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-file" + "const": "fs:deny-read-file", + "markdownDescription": "Denies the read_file command without any pre-configured scope." }, { "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file" + "const": "fs:deny-read-text-file", + "markdownDescription": "Denies the read_text_file command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines" + "const": "fs:deny-read-text-file-lines", + "markdownDescription": "Denies the read_text_file_lines command without any pre-configured scope." }, { "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "const": "fs:deny-read-text-file-lines-next" + "const": "fs:deny-read-text-file-lines-next", + "markdownDescription": "Denies the read_text_file_lines_next command without any pre-configured scope." }, { "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "const": "fs:deny-remove" + "const": "fs:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." }, { "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "const": "fs:deny-rename" + "const": "fs:deny-rename", + "markdownDescription": "Denies the rename command without any pre-configured scope." }, { "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "const": "fs:deny-seek" + "const": "fs:deny-seek", + "markdownDescription": "Denies the seek command without any pre-configured scope." }, { "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "const": "fs:deny-stat" + "const": "fs:deny-stat", + "markdownDescription": "Denies the stat command without any pre-configured scope." }, { "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "const": "fs:deny-truncate" + "const": "fs:deny-truncate", + "markdownDescription": "Denies the truncate command without any pre-configured scope." }, { "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-unwatch" + "const": "fs:deny-unwatch", + "markdownDescription": "Denies the unwatch command without any pre-configured scope." }, { "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "const": "fs:deny-watch" + "const": "fs:deny-watch", + "markdownDescription": "Denies the watch command without any pre-configured scope." }, { "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-linux" + "const": "fs:deny-webview-data-linux", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "const": "fs:deny-webview-data-windows" + "const": "fs:deny-webview-data-windows", + "markdownDescription": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "Denies the write command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write" + "const": "fs:deny-write", + "markdownDescription": "Denies the write command without any pre-configured scope." }, { "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-file" + "const": "fs:deny-write-file", + "markdownDescription": "Denies the write_file command without any pre-configured scope." }, { "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "const": "fs:deny-write-text-file" + "const": "fs:deny-write-text-file", + "markdownDescription": "Denies the write_text_file command without any pre-configured scope." }, { "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-all" + "const": "fs:read-all", + "markdownDescription": "This enables all read related commands without any pre-configured accessible paths." }, { "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "const": "fs:read-app-specific-dirs-recursive" + "const": "fs:read-app-specific-dirs-recursive", + "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n" }, { "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-dirs" + "const": "fs:read-dirs", + "markdownDescription": "This enables directory read and file metadata related commands without any pre-configured accessible paths." }, { "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-files" + "const": "fs:read-files", + "markdownDescription": "This enables file read related commands without any pre-configured accessible paths." }, { "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:read-meta" + "const": "fs:read-meta", + "markdownDescription": "This enables all index or metadata related commands without any pre-configured accessible paths." }, { "description": "An empty permission you can use to modify the global scope.", "type": "string", - "const": "fs:scope" + "const": "fs:scope", + "markdownDescription": "An empty permission you can use to modify the global scope." }, { "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "const": "fs:scope-app" + "const": "fs:scope-app", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the application folders." }, { "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "const": "fs:scope-app-index" + "const": "fs:scope-app-index", + "markdownDescription": "This scope permits to list all files and folders in the application directories." }, { "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "const": "fs:scope-app-recursive" + "const": "fs:scope-app-recursive", + "markdownDescription": "This scope permits recursive access to the complete application folders, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "const": "fs:scope-appcache" + "const": "fs:scope-appcache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "const": "fs:scope-appcache-index" + "const": "fs:scope-appcache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCACHE`folder." }, { "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appcache-recursive" + "const": "fs:scope-appcache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "const": "fs:scope-appconfig" + "const": "fs:scope-appconfig", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "const": "fs:scope-appconfig-index" + "const": "fs:scope-appconfig-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPCONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appconfig-recursive" + "const": "fs:scope-appconfig-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "const": "fs:scope-appdata" + "const": "fs:scope-appdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "const": "fs:scope-appdata-index" + "const": "fs:scope-appdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-appdata-recursive" + "const": "fs:scope-appdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "const": "fs:scope-applocaldata" + "const": "fs:scope-applocaldata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "const": "fs:scope-applocaldata-index" + "const": "fs:scope-applocaldata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applocaldata-recursive" + "const": "fs:scope-applocaldata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "const": "fs:scope-applog" + "const": "fs:scope-applog", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder." }, { "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "const": "fs:scope-applog-index" + "const": "fs:scope-applog-index", + "markdownDescription": "This scope permits to list all files and folders in the `$APPLOG`folder." }, { "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-applog-recursive" + "const": "fs:scope-applog-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "const": "fs:scope-audio" + "const": "fs:scope-audio", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder." }, { "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "const": "fs:scope-audio-index" + "const": "fs:scope-audio-index", + "markdownDescription": "This scope permits to list all files and folders in the `$AUDIO`folder." }, { "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-audio-recursive" + "const": "fs:scope-audio-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "const": "fs:scope-cache" + "const": "fs:scope-cache", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder." }, { "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "const": "fs:scope-cache-index" + "const": "fs:scope-cache-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CACHE`folder." }, { "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-cache-recursive" + "const": "fs:scope-cache-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "const": "fs:scope-config" + "const": "fs:scope-config", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder." }, { "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "const": "fs:scope-config-index" + "const": "fs:scope-config-index", + "markdownDescription": "This scope permits to list all files and folders in the `$CONFIG`folder." }, { "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-config-recursive" + "const": "fs:scope-config-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "const": "fs:scope-data" + "const": "fs:scope-data", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DATA` folder." }, { "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "const": "fs:scope-data-index" + "const": "fs:scope-data-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DATA`folder." }, { "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-data-recursive" + "const": "fs:scope-data-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "const": "fs:scope-desktop" + "const": "fs:scope-desktop", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder." }, { "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "const": "fs:scope-desktop-index" + "const": "fs:scope-desktop-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DESKTOP`folder." }, { "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-desktop-recursive" + "const": "fs:scope-desktop-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "const": "fs:scope-document" + "const": "fs:scope-document", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder." }, { "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "const": "fs:scope-document-index" + "const": "fs:scope-document-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOCUMENT`folder." }, { "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-document-recursive" + "const": "fs:scope-document-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "const": "fs:scope-download" + "const": "fs:scope-download", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder." }, { "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "const": "fs:scope-download-index" + "const": "fs:scope-download-index", + "markdownDescription": "This scope permits to list all files and folders in the `$DOWNLOAD`folder." }, { "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-download-recursive" + "const": "fs:scope-download-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "const": "fs:scope-exe" + "const": "fs:scope-exe", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$EXE` folder." }, { "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "const": "fs:scope-exe-index" + "const": "fs:scope-exe-index", + "markdownDescription": "This scope permits to list all files and folders in the `$EXE`folder." }, { "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-exe-recursive" + "const": "fs:scope-exe-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "const": "fs:scope-font" + "const": "fs:scope-font", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$FONT` folder." }, { "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "const": "fs:scope-font-index" + "const": "fs:scope-font-index", + "markdownDescription": "This scope permits to list all files and folders in the `$FONT`folder." }, { "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-font-recursive" + "const": "fs:scope-font-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "const": "fs:scope-home" + "const": "fs:scope-home", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$HOME` folder." }, { "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "const": "fs:scope-home-index" + "const": "fs:scope-home-index", + "markdownDescription": "This scope permits to list all files and folders in the `$HOME`folder." }, { "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-home-recursive" + "const": "fs:scope-home-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "const": "fs:scope-localdata" + "const": "fs:scope-localdata", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder." }, { "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "const": "fs:scope-localdata-index" + "const": "fs:scope-localdata-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOCALDATA`folder." }, { "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-localdata-recursive" + "const": "fs:scope-localdata-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "const": "fs:scope-log" + "const": "fs:scope-log", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$LOG` folder." }, { "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "const": "fs:scope-log-index" + "const": "fs:scope-log-index", + "markdownDescription": "This scope permits to list all files and folders in the `$LOG`folder." }, { "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-log-recursive" + "const": "fs:scope-log-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "const": "fs:scope-picture" + "const": "fs:scope-picture", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder." }, { "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "const": "fs:scope-picture-index" + "const": "fs:scope-picture-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PICTURE`folder." }, { "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-picture-recursive" + "const": "fs:scope-picture-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "const": "fs:scope-public" + "const": "fs:scope-public", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder." }, { "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "const": "fs:scope-public-index" + "const": "fs:scope-public-index", + "markdownDescription": "This scope permits to list all files and folders in the `$PUBLIC`folder." }, { "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-public-recursive" + "const": "fs:scope-public-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "const": "fs:scope-resource" + "const": "fs:scope-resource", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder." }, { "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "const": "fs:scope-resource-index" + "const": "fs:scope-resource-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RESOURCE`folder." }, { "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-resource-recursive" + "const": "fs:scope-resource-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "const": "fs:scope-runtime" + "const": "fs:scope-runtime", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder." }, { "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "const": "fs:scope-runtime-index" + "const": "fs:scope-runtime-index", + "markdownDescription": "This scope permits to list all files and folders in the `$RUNTIME`folder." }, { "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-runtime-recursive" + "const": "fs:scope-runtime-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "const": "fs:scope-temp" + "const": "fs:scope-temp", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "const": "fs:scope-temp-index" + "const": "fs:scope-temp-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMP`folder." }, { "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-temp-recursive" + "const": "fs:scope-temp-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "const": "fs:scope-template" + "const": "fs:scope-template", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder." }, { "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "const": "fs:scope-template-index" + "const": "fs:scope-template-index", + "markdownDescription": "This scope permits to list all files and folders in the `$TEMPLATE`folder." }, { "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-template-recursive" + "const": "fs:scope-template-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files." }, { "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "const": "fs:scope-video" + "const": "fs:scope-video", + "markdownDescription": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder." }, { "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "const": "fs:scope-video-index" + "const": "fs:scope-video-index", + "markdownDescription": "This scope permits to list all files and folders in the `$VIDEO`folder." }, { "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "const": "fs:scope-video-recursive" + "const": "fs:scope-video-recursive", + "markdownDescription": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files." }, { "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-all" + "const": "fs:write-all", + "markdownDescription": "This enables all write related commands without any pre-configured accessible paths." }, { "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "const": "fs:write-files" + "const": "fs:write-files", + "markdownDescription": "This enables all file write related commands without any pre-configured accessible paths." }, { "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", "type": "string", - "const": "global-shortcut:default" + "const": "global-shortcut:default", + "markdownDescription": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n" }, { "description": "Enables the is_registered command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-is-registered" + "const": "global-shortcut:allow-is-registered", + "markdownDescription": "Enables the is_registered command without any pre-configured scope." }, { "description": "Enables the register command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-register" + "const": "global-shortcut:allow-register", + "markdownDescription": "Enables the register command without any pre-configured scope." }, { "description": "Enables the register_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-register-all" + "const": "global-shortcut:allow-register-all", + "markdownDescription": "Enables the register_all command without any pre-configured scope." }, { "description": "Enables the unregister command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-unregister" + "const": "global-shortcut:allow-unregister", + "markdownDescription": "Enables the unregister command without any pre-configured scope." }, { "description": "Enables the unregister_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:allow-unregister-all" + "const": "global-shortcut:allow-unregister-all", + "markdownDescription": "Enables the unregister_all command without any pre-configured scope." }, { "description": "Denies the is_registered command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-is-registered" + "const": "global-shortcut:deny-is-registered", + "markdownDescription": "Denies the is_registered command without any pre-configured scope." }, { "description": "Denies the register command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-register" + "const": "global-shortcut:deny-register", + "markdownDescription": "Denies the register command without any pre-configured scope." }, { "description": "Denies the register_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-register-all" + "const": "global-shortcut:deny-register-all", + "markdownDescription": "Denies the register_all command without any pre-configured scope." }, { "description": "Denies the unregister command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-unregister" + "const": "global-shortcut:deny-unregister", + "markdownDescription": "Denies the unregister command without any pre-configured scope." }, { "description": "Denies the unregister_all command without any pre-configured scope.", "type": "string", - "const": "global-shortcut:deny-unregister-all" + "const": "global-shortcut:deny-unregister-all", + "markdownDescription": "Denies the unregister_all command without any pre-configured scope." }, { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`", "type": "string", - "const": "http:default" + "const": "http:default", + "markdownDescription": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`" }, { "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch" + "const": "http:allow-fetch", + "markdownDescription": "Enables the fetch command without any pre-configured scope." }, { "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-cancel" + "const": "http:allow-fetch-cancel", + "markdownDescription": "Enables the fetch_cancel command without any pre-configured scope." }, { "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-read-body" + "const": "http:allow-fetch-read-body", + "markdownDescription": "Enables the fetch_read_body command without any pre-configured scope." }, { "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:allow-fetch-send" + "const": "http:allow-fetch-send", + "markdownDescription": "Enables the fetch_send command without any pre-configured scope." }, { "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch" + "const": "http:deny-fetch", + "markdownDescription": "Denies the fetch command without any pre-configured scope." }, { "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-cancel" + "const": "http:deny-fetch-cancel", + "markdownDescription": "Denies the fetch_cancel command without any pre-configured scope." }, { "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-read-body" + "const": "http:deny-fetch-read-body", + "markdownDescription": "Denies the fetch_read_body command without any pre-configured scope." }, { "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "const": "http:deny-fetch-send" + "const": "http:deny-fetch-send", + "markdownDescription": "Denies the fetch_send command without any pre-configured scope." }, { - "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`", "type": "string", - "const": "notification:default" + "const": "notification:default", + "markdownDescription": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`" }, { "description": "Enables the batch command without any pre-configured scope.", "type": "string", - "const": "notification:allow-batch" + "const": "notification:allow-batch", + "markdownDescription": "Enables the batch command without any pre-configured scope." }, { "description": "Enables the cancel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-cancel" + "const": "notification:allow-cancel", + "markdownDescription": "Enables the cancel command without any pre-configured scope." }, { "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "const": "notification:allow-check-permissions" + "const": "notification:allow-check-permissions", + "markdownDescription": "Enables the check_permissions command without any pre-configured scope." }, { "description": "Enables the create_channel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-create-channel" + "const": "notification:allow-create-channel", + "markdownDescription": "Enables the create_channel command without any pre-configured scope." }, { "description": "Enables the delete_channel command without any pre-configured scope.", "type": "string", - "const": "notification:allow-delete-channel" + "const": "notification:allow-delete-channel", + "markdownDescription": "Enables the delete_channel command without any pre-configured scope." }, { "description": "Enables the get_active command without any pre-configured scope.", "type": "string", - "const": "notification:allow-get-active" + "const": "notification:allow-get-active", + "markdownDescription": "Enables the get_active command without any pre-configured scope." }, { "description": "Enables the get_pending command without any pre-configured scope.", "type": "string", - "const": "notification:allow-get-pending" + "const": "notification:allow-get-pending", + "markdownDescription": "Enables the get_pending command without any pre-configured scope." }, { "description": "Enables the is_permission_granted command without any pre-configured scope.", "type": "string", - "const": "notification:allow-is-permission-granted" + "const": "notification:allow-is-permission-granted", + "markdownDescription": "Enables the is_permission_granted command without any pre-configured scope." }, { "description": "Enables the list_channels command without any pre-configured scope.", "type": "string", - "const": "notification:allow-list-channels" + "const": "notification:allow-list-channels", + "markdownDescription": "Enables the list_channels command without any pre-configured scope." }, { "description": "Enables the notify command without any pre-configured scope.", "type": "string", - "const": "notification:allow-notify" + "const": "notification:allow-notify", + "markdownDescription": "Enables the notify command without any pre-configured scope." }, { "description": "Enables the permission_state command without any pre-configured scope.", "type": "string", - "const": "notification:allow-permission-state" + "const": "notification:allow-permission-state", + "markdownDescription": "Enables the permission_state command without any pre-configured scope." }, { "description": "Enables the register_action_types command without any pre-configured scope.", "type": "string", - "const": "notification:allow-register-action-types" + "const": "notification:allow-register-action-types", + "markdownDescription": "Enables the register_action_types command without any pre-configured scope." }, { "description": "Enables the register_listener command without any pre-configured scope.", "type": "string", - "const": "notification:allow-register-listener" + "const": "notification:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." }, { "description": "Enables the remove_active command without any pre-configured scope.", "type": "string", - "const": "notification:allow-remove-active" + "const": "notification:allow-remove-active", + "markdownDescription": "Enables the remove_active command without any pre-configured scope." }, { "description": "Enables the request_permission command without any pre-configured scope.", "type": "string", - "const": "notification:allow-request-permission" + "const": "notification:allow-request-permission", + "markdownDescription": "Enables the request_permission command without any pre-configured scope." }, { "description": "Enables the show command without any pre-configured scope.", "type": "string", - "const": "notification:allow-show" + "const": "notification:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." }, { "description": "Denies the batch command without any pre-configured scope.", "type": "string", - "const": "notification:deny-batch" + "const": "notification:deny-batch", + "markdownDescription": "Denies the batch command without any pre-configured scope." }, { "description": "Denies the cancel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-cancel" + "const": "notification:deny-cancel", + "markdownDescription": "Denies the cancel command without any pre-configured scope." }, { "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "const": "notification:deny-check-permissions" + "const": "notification:deny-check-permissions", + "markdownDescription": "Denies the check_permissions command without any pre-configured scope." }, { "description": "Denies the create_channel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-create-channel" + "const": "notification:deny-create-channel", + "markdownDescription": "Denies the create_channel command without any pre-configured scope." }, { "description": "Denies the delete_channel command without any pre-configured scope.", "type": "string", - "const": "notification:deny-delete-channel" + "const": "notification:deny-delete-channel", + "markdownDescription": "Denies the delete_channel command without any pre-configured scope." }, { "description": "Denies the get_active command without any pre-configured scope.", "type": "string", - "const": "notification:deny-get-active" + "const": "notification:deny-get-active", + "markdownDescription": "Denies the get_active command without any pre-configured scope." }, { "description": "Denies the get_pending command without any pre-configured scope.", "type": "string", - "const": "notification:deny-get-pending" + "const": "notification:deny-get-pending", + "markdownDescription": "Denies the get_pending command without any pre-configured scope." }, { "description": "Denies the is_permission_granted command without any pre-configured scope.", "type": "string", - "const": "notification:deny-is-permission-granted" + "const": "notification:deny-is-permission-granted", + "markdownDescription": "Denies the is_permission_granted command without any pre-configured scope." }, { "description": "Denies the list_channels command without any pre-configured scope.", "type": "string", - "const": "notification:deny-list-channels" + "const": "notification:deny-list-channels", + "markdownDescription": "Denies the list_channels command without any pre-configured scope." }, { "description": "Denies the notify command without any pre-configured scope.", "type": "string", - "const": "notification:deny-notify" + "const": "notification:deny-notify", + "markdownDescription": "Denies the notify command without any pre-configured scope." }, { "description": "Denies the permission_state command without any pre-configured scope.", "type": "string", - "const": "notification:deny-permission-state" + "const": "notification:deny-permission-state", + "markdownDescription": "Denies the permission_state command without any pre-configured scope." }, { "description": "Denies the register_action_types command without any pre-configured scope.", "type": "string", - "const": "notification:deny-register-action-types" + "const": "notification:deny-register-action-types", + "markdownDescription": "Denies the register_action_types command without any pre-configured scope." }, { "description": "Denies the register_listener command without any pre-configured scope.", "type": "string", - "const": "notification:deny-register-listener" + "const": "notification:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." }, { "description": "Denies the remove_active command without any pre-configured scope.", "type": "string", - "const": "notification:deny-remove-active" + "const": "notification:deny-remove-active", + "markdownDescription": "Denies the remove_active command without any pre-configured scope." }, { "description": "Denies the request_permission command without any pre-configured scope.", "type": "string", - "const": "notification:deny-request-permission" + "const": "notification:deny-request-permission", + "markdownDescription": "Denies the request_permission command without any pre-configured scope." }, { "description": "Denies the show command without any pre-configured scope.", "type": "string", - "const": "notification:deny-show" + "const": "notification:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." }, { - "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer", + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", "type": "string", - "const": "opener:default" + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" }, { "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", "type": "string", - "const": "opener:allow-default-urls" + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." }, { "description": "Enables the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-path" + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." }, { "description": "Enables the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:allow-open-url" + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." }, { "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:allow-reveal-item-in-dir" + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." }, { "description": "Denies the open_path command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-path" + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." }, { "description": "Denies the open_url command without any pre-configured scope.", "type": "string", - "const": "opener:deny-open-url" + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." }, { "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", "type": "string", - "const": "opener:deny-reveal-item-in-dir" + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." }, { - "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n\n#### This default permission set includes:\n\n- `allow-arch`\n- `allow-exe-extension`\n- `allow-family`\n- `allow-locale`\n- `allow-os-type`\n- `allow-platform`\n- `allow-version`", "type": "string", - "const": "os:default" + "const": "os:default", + "markdownDescription": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n\n#### This default permission set includes:\n\n- `allow-arch`\n- `allow-exe-extension`\n- `allow-family`\n- `allow-locale`\n- `allow-os-type`\n- `allow-platform`\n- `allow-version`" }, { "description": "Enables the arch command without any pre-configured scope.", "type": "string", - "const": "os:allow-arch" + "const": "os:allow-arch", + "markdownDescription": "Enables the arch command without any pre-configured scope." }, { "description": "Enables the exe_extension command without any pre-configured scope.", "type": "string", - "const": "os:allow-exe-extension" + "const": "os:allow-exe-extension", + "markdownDescription": "Enables the exe_extension command without any pre-configured scope." }, { "description": "Enables the family command without any pre-configured scope.", "type": "string", - "const": "os:allow-family" + "const": "os:allow-family", + "markdownDescription": "Enables the family command without any pre-configured scope." }, { "description": "Enables the hostname command without any pre-configured scope.", "type": "string", - "const": "os:allow-hostname" + "const": "os:allow-hostname", + "markdownDescription": "Enables the hostname command without any pre-configured scope." }, { "description": "Enables the locale command without any pre-configured scope.", "type": "string", - "const": "os:allow-locale" + "const": "os:allow-locale", + "markdownDescription": "Enables the locale command without any pre-configured scope." }, { "description": "Enables the os_type command without any pre-configured scope.", "type": "string", - "const": "os:allow-os-type" + "const": "os:allow-os-type", + "markdownDescription": "Enables the os_type command without any pre-configured scope." }, { "description": "Enables the platform command without any pre-configured scope.", "type": "string", - "const": "os:allow-platform" + "const": "os:allow-platform", + "markdownDescription": "Enables the platform command without any pre-configured scope." }, { "description": "Enables the version command without any pre-configured scope.", "type": "string", - "const": "os:allow-version" + "const": "os:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." }, { "description": "Denies the arch command without any pre-configured scope.", "type": "string", - "const": "os:deny-arch" + "const": "os:deny-arch", + "markdownDescription": "Denies the arch command without any pre-configured scope." }, { "description": "Denies the exe_extension command without any pre-configured scope.", "type": "string", - "const": "os:deny-exe-extension" + "const": "os:deny-exe-extension", + "markdownDescription": "Denies the exe_extension command without any pre-configured scope." }, { "description": "Denies the family command without any pre-configured scope.", "type": "string", - "const": "os:deny-family" + "const": "os:deny-family", + "markdownDescription": "Denies the family command without any pre-configured scope." }, { "description": "Denies the hostname command without any pre-configured scope.", "type": "string", - "const": "os:deny-hostname" + "const": "os:deny-hostname", + "markdownDescription": "Denies the hostname command without any pre-configured scope." }, { "description": "Denies the locale command without any pre-configured scope.", "type": "string", - "const": "os:deny-locale" + "const": "os:deny-locale", + "markdownDescription": "Denies the locale command without any pre-configured scope." }, { "description": "Denies the os_type command without any pre-configured scope.", "type": "string", - "const": "os:deny-os-type" + "const": "os:deny-os-type", + "markdownDescription": "Denies the os_type command without any pre-configured scope." }, { "description": "Denies the platform command without any pre-configured scope.", "type": "string", - "const": "os:deny-platform" + "const": "os:deny-platform", + "markdownDescription": "Denies the platform command without any pre-configured scope." }, { "description": "Denies the version command without any pre-configured scope.", "type": "string", - "const": "os:deny-version" + "const": "os:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." }, { - "description": "Allows the moveWindow and handleIconState APIs", + "description": "Allows the moveWindow and handleIconState APIs\n#### This default permission set includes:\n\n- `allow-move-window`\n- `set-tray-icon-state`", "type": "string", - "const": "positioner:default" + "const": "positioner:default", + "markdownDescription": "Allows the moveWindow and handleIconState APIs\n#### This default permission set includes:\n\n- `allow-move-window`\n- `set-tray-icon-state`" }, { "description": "Enables the move_window command without any pre-configured scope.", "type": "string", - "const": "positioner:allow-move-window" + "const": "positioner:allow-move-window", + "markdownDescription": "Enables the move_window command without any pre-configured scope." }, { "description": "Enables the set_tray_icon_state command without any pre-configured scope.", "type": "string", - "const": "positioner:allow-set-tray-icon-state" + "const": "positioner:allow-set-tray-icon-state", + "markdownDescription": "Enables the set_tray_icon_state command without any pre-configured scope." }, { "description": "Denies the move_window command without any pre-configured scope.", "type": "string", - "const": "positioner:deny-move-window" + "const": "positioner:deny-move-window", + "markdownDescription": "Denies the move_window command without any pre-configured scope." }, { "description": "Denies the set_tray_icon_state command without any pre-configured scope.", "type": "string", - "const": "positioner:deny-set-tray-icon-state" + "const": "positioner:deny-set-tray-icon-state", + "markdownDescription": "Denies the set_tray_icon_state command without any pre-configured scope." }, { - "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`", "type": "string", - "const": "process:default" + "const": "process:default", + "markdownDescription": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`" }, { "description": "Enables the exit command without any pre-configured scope.", "type": "string", - "const": "process:allow-exit" + "const": "process:allow-exit", + "markdownDescription": "Enables the exit command without any pre-configured scope." }, { "description": "Enables the restart command without any pre-configured scope.", "type": "string", - "const": "process:allow-restart" + "const": "process:allow-restart", + "markdownDescription": "Enables the restart command without any pre-configured scope." }, { "description": "Denies the exit command without any pre-configured scope.", "type": "string", - "const": "process:deny-exit" + "const": "process:deny-exit", + "markdownDescription": "Denies the exit command without any pre-configured scope." }, { "description": "Denies the restart command without any pre-configured scope.", "type": "string", - "const": "process:deny-restart" + "const": "process:deny-restart", + "markdownDescription": "Denies the restart command without any pre-configured scope." }, { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", "type": "string", - "const": "shell:default" + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" }, { "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "const": "shell:allow-execute" + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." }, { "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "const": "shell:allow-kill" + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." }, { "description": "Enables the open command without any pre-configured scope.", "type": "string", - "const": "shell:allow-open" + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." }, { "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:allow-spawn" + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." }, { "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:allow-stdin-write" + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." }, { "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "const": "shell:deny-execute" + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." }, { "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "const": "shell:deny-kill" + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." }, { "description": "Denies the open command without any pre-configured scope.", "type": "string", - "const": "shell:deny-open" + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." }, { "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "const": "shell:deny-spawn" + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." }, { "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "const": "shell:deny-stdin-write" + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." }, { - "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", + "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n\n#### This default permission set includes:\n\n- `allow-check`\n- `allow-download`\n- `allow-install`\n- `allow-download-and-install`", "type": "string", - "const": "updater:default" + "const": "updater:default", + "markdownDescription": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n\n#### This default permission set includes:\n\n- `allow-check`\n- `allow-download`\n- `allow-install`\n- `allow-download-and-install`" }, { "description": "Enables the check command without any pre-configured scope.", "type": "string", - "const": "updater:allow-check" + "const": "updater:allow-check", + "markdownDescription": "Enables the check command without any pre-configured scope." }, { "description": "Enables the download command without any pre-configured scope.", "type": "string", - "const": "updater:allow-download" + "const": "updater:allow-download", + "markdownDescription": "Enables the download command without any pre-configured scope." }, { "description": "Enables the download_and_install command without any pre-configured scope.", "type": "string", - "const": "updater:allow-download-and-install" + "const": "updater:allow-download-and-install", + "markdownDescription": "Enables the download_and_install command without any pre-configured scope." }, { "description": "Enables the install command without any pre-configured scope.", "type": "string", - "const": "updater:allow-install" + "const": "updater:allow-install", + "markdownDescription": "Enables the install command without any pre-configured scope." }, { "description": "Denies the check command without any pre-configured scope.", "type": "string", - "const": "updater:deny-check" + "const": "updater:deny-check", + "markdownDescription": "Denies the check command without any pre-configured scope." }, { "description": "Denies the download command without any pre-configured scope.", "type": "string", - "const": "updater:deny-download" + "const": "updater:deny-download", + "markdownDescription": "Denies the download command without any pre-configured scope." }, { "description": "Denies the download_and_install command without any pre-configured scope.", "type": "string", - "const": "updater:deny-download-and-install" + "const": "updater:deny-download-and-install", + "markdownDescription": "Denies the download_and_install command without any pre-configured scope." }, { "description": "Denies the install command without any pre-configured scope.", "type": "string", - "const": "updater:deny-install" + "const": "updater:deny-install", + "markdownDescription": "Denies the install command without any pre-configured scope." } ] },