* enhance: include permissions in default permission description
* Only include in schema
* Remove 'which includes` to tauri's build script
* Also bump utils
* Clippy
My local clippy didn't report this, weird
* Use `which enables all commands`
for default permissions that enables everything
* Extract description into a variable
* Generate permissions with or without description
* Tweak the docs and generate 'which includes'
* Simplify to just `includes`
* Docs change change file
* Put the change in minor
* Update .changes/include-permissions-in-schema.md
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* Remove unused change file
---------
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* Remove description from runtime
* Just use none instead
* global_scope_schema and add comments about it
* Tweak wording
* remove comments [skip ci]
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat(core): add WebviewWindow::resolve_command_scope
This new functionality exposes the `CommandScope` resolution as a function (currently only commands can resolve them as a dependency injection via CommandItem)
This function is useful to validate the configuration at runtime (do some asserts at setup phase to ensure capabilities are properly configured) and to resolve scopes in a separate thread or context
* adjust return type
* remove dbg! in resources test
* use methods from `fs` and `env` qualified
* share `ACL_MANIFESTS_FILE_NAME` and `CAPABILITIES_FILE_NAME` consts across crates
* simplifiy `Manifest::new` code for better readability
* move reading global api scripts logic next to the function that defines it
* [tauri-build] move acl logic from lib.rs to acl.rs
* use const value for schema instead of enum value with a single variant
* remove unnecessary info from permissions hover
* move related functions next to each other & improve readability of others
* use methods from `fs` and `env` qualified
* fix warning, unused return in test
* document some functions
* improve generated schema for better scope schema completion, simplify, reorganize and document the logic
previously if you had `fs` and `http` plugins added in a project
and then try to write an extended permission for `fs:allow-app-meta`
```json
{
"identifier": "fs:allow-app-meta",
"allow": [ <here> ]
}
```
and even though identifier is from `fs` plugin,
the JSON schema suggests `path` and `url`.
Now it will only suggest relevant field which is `path`
* resolve permissions from other plugins, generate `core:default` as a normal set instead of special logic
* move `PERMISSION_SCHEMAS_FOLDER_NAME` to acl module
* use gneric trait because of MSRV
* ensure `gen/schemas` dir is created
* clippy
I noticed the plugin build fails on older Swift (tested on macOS 12) because the default minimum required macOS version (10.10 in my case) is older than `v10_13` which is set by the Tauri iOS package (and also swift-rs).
So the plugins must explicitly define a minimum macOS version too.
* refactor: remove targetSdk as it is being removed in DSL 9.0
* note
* fix: typo
* update: changelog
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
---------
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
* add plugin resolution to gradle settings
This is needed to make Android Studio able to link to the project
* reflect codegen edit in the plugin example
* feat(core): allow defining global API script on plugin build
Adds `tauri_plugin::Builder::global_api_script_path` so plugin authors can define the JavaScript global API bindings (supposed to be injected to `window.__TAURI__`) at compile time, so the string is only part of the binary when withGlobalTauri is true.
Currently this needs to be done manually at runtime (and it's always added to the binary via include_str).
* prefix variable
* use list of scripts instead of combining them
* static str
* header [skip ci]
* slice
* fix(acl): scope resolution should be per window
* Update core/tauri-utils/src/acl/resolved.rs
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* update snapshots
* lint
---------
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* refactor(cli): use `tauri/custom-protocol` instead of relying on user having `custom-protocol` in their cargo features
* tauri-build dev cfg
* pass build-feature when building apk
* run beforeBuildCommand before first build for plugins
* clippy
* fix
* mut
* enhance dev/prod checks
* lint [skip ci]
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat(tauri-build): add `config-json` feature flag
This allows disabling rebuilding when `tauri.conf.json` when using another config format
see https://github.com/tauri-apps/tauri/issues/8721
* document feature flag
* Update .changes/tauri-build-config-json.md [skip ci]
* Update core/tauri/src/lib.rs [skip ci]
* disable default features for tauri-build on tauri, plugins
* fmt
---------
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
* feat(acl): generate schema for scope
* allow plugin to define its global scope schema
* refactor to use schemas folder instead of individual files
* change signature
* delete .schema.json files
* refactor(build): change tauri-api dependency path to skip rebuilds
The tauri-api Swift package cannot be injected inside the iOS plugin project because swift-rs reruns when the project folder changes. We will now inject the project in the parent folder instead.
* revert tauri-plugin-log [skip ci]
* feat(core): update swift-rs
* update tauri-plugin-log
* use env var for min iOS version
* test x86_64-apple-ios
* Revert "test x86_64-apple-ios"
This reverts commit 3ae6b79e5f.
* chore: swift min version 5.3 [skip ci]
* fix build [skip ci]
* fix cgrect usage
* test CI
* Revert "test CI"
This reverts commit 76ce0c5992.
* update swift-rs to 1.0.1
* lint
* lint [skip ci]