mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-06-14 14:27:48 +02:00
Compare commits
203 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e5da59abc | |||
| 326df68839 | |||
| faa89850d0 | |||
| 8aacc312cf | |||
| 95986f1c4d | |||
| b115fd22e0 | |||
| cdd3aafdc6 | |||
| 961a13860e | |||
| 01e534a1c9 | |||
| 9f70233ebb | |||
| 78a4097d09 | |||
| 35373956ea | |||
| bf285d471d | |||
| 9f545c65ad | |||
| 37dbd4c38d | |||
| 2b53546ce5 | |||
| 293f363c0d | |||
| e3d41f4011 | |||
| 8638740223 | |||
| bb51a41d67 | |||
| 6698774f3f | |||
| c079d8c81b | |||
| 3db3b204b4 | |||
| cc29f7dbdb | |||
| 81c31b4114 | |||
| d3b9a60e31 | |||
| 2cb80325a0 | |||
| 4b3bc1ee13 | |||
| 5dcfdec03b | |||
| f79f2b79b3 | |||
| ce7750451d | |||
| 56406214a0 | |||
| 4c8ccf6767 | |||
| 1d85ae72b4 | |||
| 4aed0a48a2 | |||
| fa8ccec4f6 | |||
| 278755f1f5 | |||
| d229dd6661 | |||
| 86723a5372 | |||
| ed46dca74f | |||
| 5c97db96bd | |||
| 4210cf316a | |||
| 57e979adaf | |||
| 4a5ab18a22 | |||
| 1f9e7ab4a0 | |||
| 9144521b90 | |||
| 2b0cd3d882 | |||
| c967307706 | |||
| 27b258cf31 | |||
| 3dca7ff5ea | |||
| e39ea8ddf8 | |||
| 7768f245f9 | |||
| fe05b872aa | |||
| df1516da14 | |||
| 4aeee08cde | |||
| 69ee862fb7 | |||
| a70172dd93 | |||
| 37466eb87e | |||
| 500ff10fbd | |||
| 8d7689f6f9 | |||
| b0daeed1e8 | |||
| dbdd60a591 | |||
| 7e2fcc5e74 | |||
| dbe0277824 | |||
| ddb5ca188f | |||
| 7fc29c326b | |||
| cf832fe106 | |||
| 0e9541fe89 | |||
| f9bcc1c21d | |||
| 773b498392 | |||
| 3e620c6951 | |||
| a32e3200de | |||
| 815a7073bc | |||
| 772f2bc349 | |||
| 73d8562849 | |||
| 73364a8b96 | |||
| 066058f631 | |||
| c013fa52cd | |||
| 57d01bf82e | |||
| 7be37b1909 | |||
| dabac0eedf | |||
| c6a5b7ae47 | |||
| a2339195aa | |||
| 4cd81126fd | |||
| fc3667db6a | |||
| f39d362add | |||
| fe4ad4dd5c | |||
| 9c2fb9306e | |||
| d3c7ee5a61 | |||
| 719b651753 | |||
| 40ce253abf | |||
| 184f4edbbc | |||
| 8f857dc4e1 | |||
| bb836b2440 | |||
| 8cd4a39864 | |||
| 80af01181a | |||
| 42607f0dbd | |||
| 160498dae5 | |||
| 6db4320e98 | |||
| cc63614f1e | |||
| 02111b9526 | |||
| 03fab3c6ad | |||
| 6a6c9daeb2 | |||
| d95a1b382f | |||
| 24eb3398d0 | |||
| adbc333a0f | |||
| b74ccb6639 | |||
| c290049051 | |||
| 509c23ed36 | |||
| 11d98e911e | |||
| 30295ecc8e | |||
| ea294c776a | |||
| 19aa220411 | |||
| 85c4b8b67a | |||
| ed682dd96e | |||
| c3c55d5b4e | |||
| 0d3b6b8aca | |||
| 67df245eee | |||
| 382fc3a7bf | |||
| 7c59242905 | |||
| da76481ad3 | |||
| 25aecc0074 | |||
| 58176114f9 | |||
| 4cc2e50d16 | |||
| e096f63bda | |||
| 01211ff075 | |||
| 9299c919c7 | |||
| c7f92ddf2f | |||
| 1adb912547 | |||
| 67405aed06 | |||
| 8cb4e3d14d | |||
| 056a458d30 | |||
| 9ca77efff2 | |||
| 70d99086de | |||
| 035a4824d6 | |||
| cd7549f22e | |||
| 38aedb45e3 | |||
| 32a5f92c8f | |||
| cf00900298 | |||
| 83f9899f78 | |||
| c5e8cd31ec | |||
| 0cdbde386f | |||
| 2985957afc | |||
| fe09260483 | |||
| 775f7b88ed | |||
| 39108ceacb | |||
| c00b00a93c | |||
| d2ea535a16 | |||
| eec61a8a6d | |||
| 7701cf4107 | |||
| 539b566fad | |||
| 3ffa47c0e8 | |||
| df5a6483c2 | |||
| 27d610387c | |||
| 71d755f5f5 | |||
| 7c442019e1 | |||
| 9b99416965 | |||
| 7de603ebff | |||
| 35d821cbf1 | |||
| 563ca73de0 | |||
| 27eb8c74af | |||
| 4aa61dcc9e | |||
| e6b6748085 | |||
| 90fef3ae2d | |||
| cc352416e5 | |||
| 5e73de50e7 | |||
| 46dfb75d92 | |||
| 3af968ce8f | |||
| 4f8df2f86b | |||
| 65ea3d9adf | |||
| 776ff9c97e | |||
| 5c883bdd33 | |||
| af2892f6a1 | |||
| a5792e220a | |||
| eef088dde4 | |||
| 8d00fc08f0 | |||
| c7336bc330 | |||
| 84208e0a53 | |||
| 2a28c81da6 | |||
| 56750d31e6 | |||
| 899c6262f8 | |||
| 6a19feca1d | |||
| ad5ec05e26 | |||
| b67dc85936 | |||
| b01da63d55 | |||
| aabb440159 | |||
| e1eb82fe92 | |||
| a18d442765 | |||
| c98545b3ae | |||
| 3df9bc73f8 | |||
| 9b2e9ab6c9 | |||
| e7b022d62e | |||
| 4195240f36 | |||
| a67f7cb7c8 | |||
| 3f7c4ddc96 | |||
| 12900556a0 | |||
| 4899ae007a | |||
| 3db81b4fe3 | |||
| bd4bf06e6c | |||
| f780e87ee3 | |||
| 537053d317 | |||
| 4f9e58d751 | |||
| e9a0803d95 |
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"clipboard-manager": "patch"
|
||||
---
|
||||
|
||||
Expose `Clipboard` struct
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"dialog": "patch"
|
||||
---
|
||||
|
||||
Fixed an issue where dialogs on android would return the Content URI instead of the file path
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"fs": patch
|
||||
---
|
||||
|
||||
Enhance the scope type to also allow a plain string representing the path to allow or deny.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"log-js": patch
|
||||
---
|
||||
|
||||
Added `attachLogger` helper function to register a function that should be called for each log entry.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"single-instance": patch
|
||||
---
|
||||
|
||||
Added the `semver` feature flag to make the single instance mechanism only trigger for semver compatible versions.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"websocket": patch
|
||||
---
|
||||
|
||||
**Breaking change:** Enable rustls by default and added a method to configure the TLS Connector for tungstenite.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"autostart": patch
|
||||
---
|
||||
|
||||
Fix LaunchAgent-based autostart for macOS.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"notification": patch
|
||||
"barcode-scanner": patch
|
||||
"dialog": patch
|
||||
---
|
||||
|
||||
Fixes command argument parsing on iOS.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"fs": patch
|
||||
---
|
||||
|
||||
Fixes an issue that caused the app to freeze when the `dialog`, `fs`, and `persisted-scope` plugins were used together.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"http": patch
|
||||
---
|
||||
|
||||
**Breaking change:** Removed the `default-tls` feature flag. The `rustls-tls`, `http2`, `macos-system-configuration`, and `charset` feature flags are now enabled by default.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"updater": patch
|
||||
---
|
||||
|
||||
**Breaking change:** The `rustls-tls` feature flag is now enabled by default.
|
||||
+25
-1
@@ -2,17 +2,29 @@
|
||||
"tag": "beta",
|
||||
"changes": [
|
||||
".changes/beta.md",
|
||||
".changes/clipboard-expose-struct.md",
|
||||
".changes/clipboard-html.md",
|
||||
".changes/clipboard-manager-image.md",
|
||||
".changes/clipboard-text-command-rename.md",
|
||||
".changes/dialog-can-create-directories.md",
|
||||
".changes/dialog-linux-freeze.md",
|
||||
".changes/dialog-main-thread.md",
|
||||
".changes/dialog-path-return-mismatch.md",
|
||||
".changes/enhance-fs-scope-type.md",
|
||||
".changes/enhance-http-scope.md",
|
||||
".changes/feat-log-attachlogger.md",
|
||||
".changes/feat-single-instance-semver.md",
|
||||
".changes/feat-websocket-tls-connector.md",
|
||||
".changes/file-autogen-fix.md",
|
||||
".changes/fix-autolaunch-macos.md",
|
||||
".changes/fix-default-arg-value.md",
|
||||
".changes/fix-fs-scope-deadlock.md",
|
||||
".changes/fix-fs-watcher-basedir.md",
|
||||
".changes/fix-http-default-features.md",
|
||||
".changes/fix-http-scope-url-match.md",
|
||||
".changes/fix-shutdown-timing.md",
|
||||
".changes/fix-updater-cleanup.md",
|
||||
".changes/fix-updater-default-features.md",
|
||||
".changes/fix-updater-installer-args-deserialization.md",
|
||||
".changes/fix-updater-installmode.md",
|
||||
".changes/fix-updater-powershell-flashing.md",
|
||||
@@ -24,10 +36,22 @@
|
||||
".changes/msrv-1.75.md",
|
||||
".changes/notification-fix-dev-check.md",
|
||||
".changes/public-with-store.md",
|
||||
".changes/remove-unc-path-prefix.md",
|
||||
".changes/reqwest-0.12.md",
|
||||
".changes/scoped-resources-table.md",
|
||||
".changes/shell-fix-schema-command-property-name.md",
|
||||
".changes/shell-shellexcute.md",
|
||||
".changes/single-instance.macos.md",
|
||||
".changes/tauri-beta-14-dependencies.md",
|
||||
".changes/tauri-beta-14.md",
|
||||
".changes/tauri-beta-15.md",
|
||||
".changes/tauri-beta-4.md",
|
||||
".changes/tauri-beta-8.md",
|
||||
".changes/tauri-beta-9.md"
|
||||
".changes/tauri-beta-9.md",
|
||||
".changes/upload-returnval.md",
|
||||
".changes/window-state-custom-filename.md",
|
||||
".changes/window-state-default-filename.md",
|
||||
".changes/window-state-js-binding.md",
|
||||
".changes/window-state-json.md"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
dialog: patch
|
||||
fs: patch
|
||||
store: patch
|
||||
---
|
||||
|
||||
**Breaking Change:** All apis that return paths to the frontend will now remove the `\\?\` UNC prefix on Windows.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"upload": patch
|
||||
---
|
||||
|
||||
**Breaking change**: Removed http3 feature and added http2 feature.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
"fs": "patch"
|
||||
"http": "patch"
|
||||
"updater": "patch"
|
||||
"clipboard-manager": "patch"
|
||||
---
|
||||
|
||||
Internally use the webview scoped resources table instead of the app one, so other webviews can't access other webviews resources.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"single-instance": patch
|
||||
---
|
||||
|
||||
Added implementation for MacOS.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
"authenticator": patch
|
||||
"http": patch
|
||||
"updater": patch
|
||||
"upload": patch
|
||||
---
|
||||
|
||||
Update dependencies to align with tauri 2.0.0-beta.14.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"fs": patch
|
||||
---
|
||||
|
||||
Update for tauri 2.0.0-beta.14.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
"fs": patch
|
||||
"http": patch
|
||||
"updater": patch
|
||||
"clipboard-manager": patch
|
||||
---
|
||||
|
||||
Update for tauri 2.0.0-beta.15.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"upload": patch
|
||||
"upload-js": patch
|
||||
---
|
||||
|
||||
Return the upload response as a string and error out if the status code is not within 200-299.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"window-state": "patch"
|
||||
"window-state-js": "patch"
|
||||
---
|
||||
|
||||
Add `Builder::with_filename` to support using a custom filename. Also add `AppHandleExt::file_name` and a similar function in JS, to retrieve it later.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"window-state": "patch"
|
||||
---
|
||||
|
||||
**Breaking change**: Renamed `STATE_FILENAME` const to `DEFAULT_FILENAME`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"window-state": patch
|
||||
---
|
||||
|
||||
Fix `restore_window` and `filename` js binding missing permission
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"window-state": patch
|
||||
---
|
||||
|
||||
**Breaking change**: Changed the format of the state file from bincode to json. Also changed the filename to from `.window-state` to `.window-state.json`.
|
||||
+3
-1
@@ -5,4 +5,6 @@ build/
|
||||
dist-js
|
||||
api-iife.js
|
||||
init-iife.js
|
||||
init.js
|
||||
init.js
|
||||
rollup.config.js
|
||||
examples/
|
||||
+3
-1
@@ -4,6 +4,7 @@
|
||||
"es2021": true
|
||||
},
|
||||
"extends": [
|
||||
"love",
|
||||
"prettier",
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
@@ -13,7 +14,8 @@
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module"
|
||||
"sourceType": "module",
|
||||
"project": ["**/tsconfig.json"]
|
||||
},
|
||||
"plugins": ["@typescript-eslint"],
|
||||
"rules": {}
|
||||
|
||||
@@ -43,10 +43,10 @@ jobs:
|
||||
${{ runner.os }}-
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: "lts/*"
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
- name: audit
|
||||
run: pnpm audit
|
||||
|
||||
@@ -132,10 +132,10 @@ jobs:
|
||||
${{ runner.os }}-
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: "lts/*"
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
|
||||
- name: build api
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
|
||||
- name: install webkit2gtk and libudev for [authenticator]
|
||||
@@ -71,5 +71,5 @@ jobs:
|
||||
title: "Publish New Versions (v2)"
|
||||
commit-message: "publish new versions"
|
||||
labels: "version updates"
|
||||
branch: "release-v2"
|
||||
branch: "ci/release-v2"
|
||||
body: ${{ steps.covector.outputs.change }}
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
|
||||
- name: install webkit2gtk and libudev for [authenticator]
|
||||
@@ -64,5 +64,5 @@ jobs:
|
||||
title: "Publish New Versions"
|
||||
commit-message: "publish new versions"
|
||||
labels: "version updates"
|
||||
branch: "release"
|
||||
branch: "ci/release-v1"
|
||||
body: ${{ steps.covector.outputs.change }}
|
||||
|
||||
@@ -46,10 +46,10 @@ jobs:
|
||||
${{ runner.os }}-
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: "lts/*"
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
- name: eslint
|
||||
run: pnpm lint
|
||||
@@ -66,10 +66,10 @@ jobs:
|
||||
${{ runner.os }}-
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: "lts/*"
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
- name: prettier check
|
||||
run: pnpm format-check
|
||||
|
||||
@@ -34,11 +34,11 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: "lts/*"
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7.x.x
|
||||
version: 8.x.x
|
||||
run_install: true
|
||||
|
||||
- name: Build packages
|
||||
|
||||
Generated
+349
-798
File diff suppressed because it is too large
Load Diff
+5
-3
@@ -10,19 +10,21 @@ resolver = "2"
|
||||
[workspace.dependencies]
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
log = "0.4"
|
||||
tauri = "2.0.0-beta.12"
|
||||
tauri-build = "2.0.0-beta.10"
|
||||
tauri-plugin = "2.0.0-beta.10"
|
||||
tauri = "2.0.0-beta.15"
|
||||
tauri-build = "2.0.0-beta.12"
|
||||
tauri-plugin = "2.0.0-beta.12"
|
||||
serde_json = "1"
|
||||
thiserror = "1"
|
||||
url = "2"
|
||||
schemars = "0.8"
|
||||
dunce = "1"
|
||||
|
||||
[workspace.package]
|
||||
edition = "2021"
|
||||
authors = ["Tauri Programme within The Commons Conservancy"]
|
||||
license = "Apache-2.0 OR MIT"
|
||||
rust-version = "1.75"
|
||||
repository = "https://github.com/tauri-apps/plugins-workspace"
|
||||
|
||||
# default to small, optimized release binaries
|
||||
[profile.release]
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `log-js@2.0.0-beta.3`
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
### Dependencies
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "svelte-app",
|
||||
"private": true,
|
||||
"version": "2.0.0-beta.3",
|
||||
"version": "2.0.0-beta.4",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --clearScreen false",
|
||||
@@ -9,7 +9,7 @@
|
||||
"serve": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6",
|
||||
"@tauri-apps/api": "2.0.0-beta.8",
|
||||
"@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.2",
|
||||
"@tauri-apps/plugin-biometric": "2.0.0-beta.2",
|
||||
"@tauri-apps/plugin-cli": "2.0.0-beta.2",
|
||||
@@ -24,17 +24,17 @@
|
||||
"@tauri-apps/plugin-process": "2.0.0-beta.2",
|
||||
"@tauri-apps/plugin-shell": "2.0.0-beta.2",
|
||||
"@tauri-apps/plugin-updater": "2.0.0-beta.2",
|
||||
"@zerodevx/svelte-json-view": "1.0.7"
|
||||
"@zerodevx/svelte-json-view": "1.0.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/codicon": "^1.1.37",
|
||||
"@iconify-json/ph": "^1.1.8",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.1",
|
||||
"@tauri-apps/cli": "2.0.0-beta.9",
|
||||
"@unocss/extractor-svelte": "^0.58.0",
|
||||
"@tauri-apps/cli": "2.0.0-beta.13",
|
||||
"@unocss/extractor-svelte": "^0.59.0",
|
||||
"internal-ip": "^8.0.0",
|
||||
"svelte": "^4.2.8",
|
||||
"unocss": "^0.58.0",
|
||||
"vite": "^5.0.12"
|
||||
"unocss": "^0.59.0",
|
||||
"vite": "^5.0.13"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.6]
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `notification@2.0.0-beta.4`
|
||||
- Upgraded to `barcode-scanner@2.0.0-beta.4`
|
||||
- Upgraded to `dialog@2.0.0-beta.6`
|
||||
- Upgraded to `fs@2.0.0-beta.6`
|
||||
- Upgraded to `http@2.0.0-beta.6`
|
||||
|
||||
## \[2.0.0-beta.5]
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `clipboard-manager@2.1.0-beta.1`
|
||||
- Upgraded to `http@2.0.0-beta.5`
|
||||
- Upgraded to `updater@2.0.0-beta.4`
|
||||
- Upgraded to `dialog@2.0.0-beta.5`
|
||||
- Upgraded to `fs@2.0.0-beta.5`
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `dialog@2.0.0-beta.4`
|
||||
- Upgraded to `fs@2.0.0-beta.4`
|
||||
- Upgraded to `http@2.0.0-beta.4`
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
### Dependencies
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "api"
|
||||
publish = false
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.6"
|
||||
description = "An example Tauri Application showcasing the api"
|
||||
edition = "2021"
|
||||
rust-version = { workspace = true }
|
||||
@@ -17,14 +17,14 @@ tauri-build = { workspace = true, features = [ "codegen", "isolation" ] }
|
||||
[dependencies]
|
||||
serde_json = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
tiny_http = "0.11"
|
||||
tiny_http = "0.12"
|
||||
log = { workspace = true }
|
||||
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.3", features = [ "watch" ] }
|
||||
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.1.0-beta.0" }
|
||||
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.3" }
|
||||
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.3", features = [ "windows7-compat" ] }
|
||||
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.6", features = [ "watch" ] }
|
||||
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.1.0-beta.1" }
|
||||
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.6" }
|
||||
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.6" }
|
||||
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.4", features = [ "windows7-compat" ] }
|
||||
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.3" }
|
||||
@@ -43,10 +43,10 @@ tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.3"
|
||||
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
|
||||
tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.4" }
|
||||
|
||||
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
|
||||
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.4" }
|
||||
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.3" }
|
||||
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.3" }
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
{
|
||||
"identifier": "http:default",
|
||||
"allow": [
|
||||
"https://tauri.app",
|
||||
{
|
||||
"url": "http://localhost:3003"
|
||||
}
|
||||
@@ -21,10 +22,16 @@
|
||||
"tray:default",
|
||||
"event:default",
|
||||
"window:default",
|
||||
"window:allow-minimize",
|
||||
"window:allow-maximize",
|
||||
"window:allow-unmaximize",
|
||||
"window:allow-close",
|
||||
"window:allow-start-dragging",
|
||||
"image:default",
|
||||
"notification:default",
|
||||
"os:allow-platform",
|
||||
"dialog:allow-open",
|
||||
"dialog:allow-ask",
|
||||
"dialog:allow-save",
|
||||
"dialog:allow-confirm",
|
||||
"dialog:allow-message",
|
||||
@@ -55,6 +62,8 @@
|
||||
},
|
||||
"shell:allow-kill",
|
||||
"shell:allow-stdin-write",
|
||||
"process:allow-exit",
|
||||
"process:allow-restart",
|
||||
"clipboard-manager:allow-read-text",
|
||||
"clipboard-manager:allow-write-text",
|
||||
"clipboard-manager:allow-read-image",
|
||||
@@ -72,11 +81,7 @@
|
||||
"path": "$APPDATA/db/**"
|
||||
}
|
||||
],
|
||||
"deny": [
|
||||
{
|
||||
"path": "$APPDATA/db/*.stronghold"
|
||||
}
|
||||
]
|
||||
"deny": ["$APPDATA/db/*.stronghold"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recusrive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-app-write-recursive"
|
||||
@@ -226,7 +226,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appcache-write-recursive"
|
||||
@@ -268,7 +268,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appconfig-write-recursive"
|
||||
@@ -310,7 +310,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appdata-write-recursive"
|
||||
@@ -352,7 +352,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applocaldata-write-recursive"
|
||||
@@ -394,7 +394,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applog-write-recursive"
|
||||
@@ -436,7 +436,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-audio-write-recursive"
|
||||
@@ -478,7 +478,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-cache-write-recursive"
|
||||
@@ -520,7 +520,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-config-write-recursive"
|
||||
@@ -562,7 +562,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-data-write-recursive"
|
||||
@@ -604,7 +604,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-desktop-write-recursive"
|
||||
@@ -646,7 +646,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-document-write-recursive"
|
||||
@@ -688,7 +688,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-download-write-recursive"
|
||||
@@ -730,7 +730,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-exe-write-recursive"
|
||||
@@ -772,7 +772,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-font-write-recursive"
|
||||
@@ -814,7 +814,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-home-write-recursive"
|
||||
@@ -856,7 +856,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-localdata-write-recursive"
|
||||
@@ -898,7 +898,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-log-write-recursive"
|
||||
@@ -940,7 +940,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-picture-write-recursive"
|
||||
@@ -982,7 +982,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-public-write-recursive"
|
||||
@@ -1024,7 +1024,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-resource-write-recursive"
|
||||
@@ -1066,7 +1066,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-runtime-write-recursive"
|
||||
@@ -1108,7 +1108,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-temp-write-recursive"
|
||||
@@ -1150,7 +1150,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-template-write-recursive"
|
||||
@@ -1192,7 +1192,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-video-write-recursive"
|
||||
@@ -2133,30 +2133,50 @@
|
||||
},
|
||||
"allow": {
|
||||
"items": {
|
||||
"title": "Entry",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"deny": {
|
||||
"items": {
|
||||
"title": "Entry",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2236,8 +2256,8 @@
|
||||
},
|
||||
"allow": {
|
||||
"items": {
|
||||
"title": "ScopeEntry",
|
||||
"description": "HTTP scope entry object definition.",
|
||||
"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/\"",
|
||||
@@ -2260,8 +2280,8 @@
|
||||
},
|
||||
"deny": {
|
||||
"items": {
|
||||
"title": "ScopeEntry",
|
||||
"description": "HTTP scope entry object definition.",
|
||||
"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/\"",
|
||||
@@ -2797,7 +2817,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recusrive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-app-write-recursive"
|
||||
@@ -2839,7 +2859,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appcache-write-recursive"
|
||||
@@ -2881,7 +2901,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appconfig-write-recursive"
|
||||
@@ -2923,7 +2943,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appdata-write-recursive"
|
||||
@@ -2965,7 +2985,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applocaldata-write-recursive"
|
||||
@@ -3007,7 +3027,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applog-write-recursive"
|
||||
@@ -3049,7 +3069,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-audio-write-recursive"
|
||||
@@ -3091,7 +3111,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-cache-write-recursive"
|
||||
@@ -3133,7 +3153,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-config-write-recursive"
|
||||
@@ -3175,7 +3195,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-data-write-recursive"
|
||||
@@ -3217,7 +3237,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-desktop-write-recursive"
|
||||
@@ -3259,7 +3279,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-document-write-recursive"
|
||||
@@ -3301,7 +3321,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-download-write-recursive"
|
||||
@@ -3343,7 +3363,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-exe-write-recursive"
|
||||
@@ -3385,7 +3405,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-font-write-recursive"
|
||||
@@ -3427,7 +3447,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-home-write-recursive"
|
||||
@@ -3469,7 +3489,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-localdata-write-recursive"
|
||||
@@ -3511,7 +3531,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-log-write-recursive"
|
||||
@@ -3553,7 +3573,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-picture-write-recursive"
|
||||
@@ -3595,7 +3615,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-public-write-recursive"
|
||||
@@ -3637,7 +3657,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-resource-write-recursive"
|
||||
@@ -3679,7 +3699,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-runtime-write-recursive"
|
||||
@@ -3721,7 +3741,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-temp-write-recursive"
|
||||
@@ -3763,7 +3783,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-template-write-recursive"
|
||||
@@ -3805,7 +3825,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-video-write-recursive"
|
||||
@@ -5963,6 +5983,13 @@
|
||||
"webview:allow-set-webview-size"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"webview:allow-set-webview-zoom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.",
|
||||
"type": "string",
|
||||
@@ -6040,6 +6067,13 @@
|
||||
"webview:deny-set-webview-size"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"webview:deny-set-webview-zoom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.",
|
||||
"type": "string",
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recusrive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-app-write-recursive"
|
||||
@@ -226,7 +226,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appcache-write-recursive"
|
||||
@@ -268,7 +268,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appconfig-write-recursive"
|
||||
@@ -310,7 +310,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appdata-write-recursive"
|
||||
@@ -352,7 +352,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applocaldata-write-recursive"
|
||||
@@ -394,7 +394,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applog-write-recursive"
|
||||
@@ -436,7 +436,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-audio-write-recursive"
|
||||
@@ -478,7 +478,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-cache-write-recursive"
|
||||
@@ -520,7 +520,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-config-write-recursive"
|
||||
@@ -562,7 +562,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-data-write-recursive"
|
||||
@@ -604,7 +604,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-desktop-write-recursive"
|
||||
@@ -646,7 +646,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-document-write-recursive"
|
||||
@@ -688,7 +688,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-download-write-recursive"
|
||||
@@ -730,7 +730,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-exe-write-recursive"
|
||||
@@ -772,7 +772,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-font-write-recursive"
|
||||
@@ -814,7 +814,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-home-write-recursive"
|
||||
@@ -856,7 +856,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-localdata-write-recursive"
|
||||
@@ -898,7 +898,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-log-write-recursive"
|
||||
@@ -940,7 +940,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-picture-write-recursive"
|
||||
@@ -982,7 +982,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-public-write-recursive"
|
||||
@@ -1024,7 +1024,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-resource-write-recursive"
|
||||
@@ -1066,7 +1066,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-runtime-write-recursive"
|
||||
@@ -1108,7 +1108,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-temp-write-recursive"
|
||||
@@ -1150,7 +1150,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-template-write-recursive"
|
||||
@@ -1192,7 +1192,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-video-write-recursive"
|
||||
@@ -2133,30 +2133,50 @@
|
||||
},
|
||||
"allow": {
|
||||
"items": {
|
||||
"title": "Entry",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"deny": {
|
||||
"items": {
|
||||
"title": "Entry",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2236,8 +2256,8 @@
|
||||
},
|
||||
"allow": {
|
||||
"items": {
|
||||
"title": "ScopeEntry",
|
||||
"description": "HTTP scope entry object definition.",
|
||||
"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/\"",
|
||||
@@ -2260,8 +2280,8 @@
|
||||
},
|
||||
"deny": {
|
||||
"items": {
|
||||
"title": "ScopeEntry",
|
||||
"description": "HTTP scope entry object definition.",
|
||||
"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/\"",
|
||||
@@ -2900,7 +2920,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recusrive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-app-write-recursive"
|
||||
@@ -2942,7 +2962,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appcache-write-recursive"
|
||||
@@ -2984,7 +3004,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appconfig-write-recursive"
|
||||
@@ -3026,7 +3046,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-appdata-write-recursive"
|
||||
@@ -3068,7 +3088,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applocaldata-write-recursive"
|
||||
@@ -3110,7 +3130,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-applog-write-recursive"
|
||||
@@ -3152,7 +3172,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-audio-write-recursive"
|
||||
@@ -3194,7 +3214,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-cache-write-recursive"
|
||||
@@ -3236,7 +3256,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-config-write-recursive"
|
||||
@@ -3278,7 +3298,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-data-write-recursive"
|
||||
@@ -3320,7 +3340,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-desktop-write-recursive"
|
||||
@@ -3362,7 +3382,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-document-write-recursive"
|
||||
@@ -3404,7 +3424,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-download-write-recursive"
|
||||
@@ -3446,7 +3466,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-exe-write-recursive"
|
||||
@@ -3488,7 +3508,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-font-write-recursive"
|
||||
@@ -3530,7 +3550,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-home-write-recursive"
|
||||
@@ -3572,7 +3592,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-localdata-write-recursive"
|
||||
@@ -3614,7 +3634,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-log-write-recursive"
|
||||
@@ -3656,7 +3676,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-picture-write-recursive"
|
||||
@@ -3698,7 +3718,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-public-write-recursive"
|
||||
@@ -3740,7 +3760,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-resource-write-recursive"
|
||||
@@ -3782,7 +3802,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-runtime-write-recursive"
|
||||
@@ -3824,7 +3844,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-temp-write-recursive"
|
||||
@@ -3866,7 +3886,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-template-write-recursive"
|
||||
@@ -3908,7 +3928,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"fs:allow-video-write-recursive"
|
||||
|
||||
@@ -145,10 +145,12 @@ pub fn run() {
|
||||
|
||||
app.run(move |_app_handle, _event| {
|
||||
#[cfg(desktop)]
|
||||
if let RunEvent::ExitRequested { api, .. } = &_event {
|
||||
// Keep the event loop running even if all windows are closed
|
||||
// This allow us to catch system tray events when there is no window
|
||||
api.prevent_exit();
|
||||
if let RunEvent::ExitRequested { code, api, .. } = &_event {
|
||||
if code.is_none() {
|
||||
// Keep the event loop running even if all windows are closed
|
||||
// This allow us to catch system tray events when there is no window
|
||||
api.prevent_exit();
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
getCurrentWebview().onFileDropEvent((event) => {
|
||||
getCurrentWebview().onDragDropEvent((event) => {
|
||||
onMessage(`File drop: ${JSON.stringify(event.payload)}`);
|
||||
});
|
||||
|
||||
|
||||
+11
-10
@@ -13,26 +13,27 @@
|
||||
"@rollup/plugin-node-resolve": "15.2.3",
|
||||
"@rollup/plugin-terser": "0.4.4",
|
||||
"@rollup/plugin-typescript": "11.1.6",
|
||||
"@typescript-eslint/eslint-plugin": "6.20.0",
|
||||
"@typescript-eslint/parser": "6.20.0",
|
||||
"@typescript-eslint/eslint-plugin": "7.7.1",
|
||||
"@typescript-eslint/parser": "7.7.1",
|
||||
"covector": "^0.10.2",
|
||||
"eslint": "8.56.0",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-config-prettier": "9.1.0",
|
||||
"eslint-config-standard-with-typescript": "43.0.1",
|
||||
"eslint-config-love": "43.1.0",
|
||||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-n": "16.6.2",
|
||||
"eslint-plugin-n": "17.2.1",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"eslint-plugin-security": "2.1.0",
|
||||
"prettier": "3.2.2",
|
||||
"rollup": "4.9.6",
|
||||
"typescript": "5.3.3"
|
||||
"eslint-plugin-security": "3.0.0",
|
||||
"prettier": "3.2.5",
|
||||
"rollup": "4.16.2",
|
||||
"tslib": "2.6.2",
|
||||
"typescript": "5.4.5"
|
||||
},
|
||||
"resolutions": {
|
||||
"semver": ">=7.5.2",
|
||||
"optionator": ">=0.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"pnpm": ">=7.33.1"
|
||||
"pnpm": "^8.0.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"auditConfig": {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
- [`7e2fcc5`](https://github.com/tauri-apps/plugins-workspace/commit/7e2fcc5e74df7c3c718e40f75bfb0eafc7d69d8d)([#1146](https://github.com/tauri-apps/plugins-workspace/pull/1146)) Update dependencies to align with tauri 2.0.0-beta.14.
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
- [`a04ea2f`](https://github.com/tauri-apps/plugins-workspace/commit/a04ea2f38294d5a3987578283badc8eec87a7752)([#1071](https://github.com/tauri-apps/plugins-workspace/pull/1071)) The global API script is now only added to the binary when the `withGlobalTauri` config is true.
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
[package]
|
||||
name = "tauri-plugin-authenticator"
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.4"
|
||||
description = "Use hardware security-keys in your Tauri App."
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-authenticator"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
@@ -26,7 +27,7 @@ thiserror = { workspace = true }
|
||||
authenticator = "0.3.1"
|
||||
once_cell = "1"
|
||||
sha2 = "0.10"
|
||||
base64 = "0.21"
|
||||
base64 = "0.22"
|
||||
chrono = "0.4"
|
||||
bytes = "1"
|
||||
byteorder = "1"
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_AUTHENTICATOR__=function(t){"use strict";async function i(t,i={},a){return window.__TAURI_INTERNALS__.invoke(t,i,a)}"function"==typeof SuppressedError&&SuppressedError;return t.Authenticator=class{async init(){return await i("plugin:authenticator|init_auth")}async register(t,a){return await i("plugin:authenticator|register",{timeout:1e4,challenge:t,application:a})}async verifyRegistration(t,a,e,n){return await i("plugin:authenticator|verify_registration",{challenge:t,application:a,registerData:e,clientData:n})}async sign(t,a,e){return await i("plugin:authenticator|sign",{timeout:1e4,challenge:t,application:a,keyHandle:e})}async verifySignature(t,a,e,n,r,u){return await i("plugin:authenticator|verify_signature",{challenge:t,application:a,signData:e,clientData:n,keyHandle:r,pubkey:u})}},t}({});Object.defineProperty(window.__TAURI__,"authenticator",{value:__TAURI_PLUGIN_AUTHENTICATOR__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_AUTHENTICATOR__=function(t){"use strict";async function i(t,i={},a){return window.__TAURI_INTERNALS__.invoke(t,i,a)}"function"==typeof SuppressedError&&SuppressedError;return t.Authenticator=class{async init(){await i("plugin:authenticator|init_auth")}async register(t,a){return await i("plugin:authenticator|register",{timeout:1e4,challenge:t,application:a})}async verifyRegistration(t,a,e,n){return await i("plugin:authenticator|verify_registration",{challenge:t,application:a,registerData:e,clientData:n})}async sign(t,a,e){return await i("plugin:authenticator|sign",{timeout:1e4,challenge:t,application:a,keyHandle:e})}async verifySignature(t,a,e,n,r,u){return await i("plugin:authenticator|verify_signature",{challenge:t,application:a,signData:e,clientData:n,keyHandle:r,pubkey:u})}},t}({});Object.defineProperty(window.__TAURI__,"authenticator",{value:__TAURI_PLUGIN_AUTHENTICATOR__})}
|
||||
|
||||
@@ -6,7 +6,7 @@ import { invoke } from "@tauri-apps/api/core";
|
||||
|
||||
export class Authenticator {
|
||||
async init(): Promise<void> {
|
||||
return await invoke("plugin:authenticator|init_auth");
|
||||
await invoke("plugin:authenticator|init_auth");
|
||||
}
|
||||
|
||||
async register(challenge: string, application: string): Promise<string> {
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
- [`a233919`](https://github.com/tauri-apps/plugins-workspace/commit/a2339195aa940bff86d76375fd05087595bf06ce)([#1118](https://github.com/tauri-apps/plugins-workspace/pull/1118)) Fix LaunchAgent-based autostart for macOS.
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
- [`a04ea2f`](https://github.com/tauri-apps/plugins-workspace/commit/a04ea2f38294d5a3987578283badc8eec87a7752)([#1071](https://github.com/tauri-apps/plugins-workspace/pull/1071)) The global API script is now only added to the binary when the `withGlobalTauri` config is true.
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
[package]
|
||||
name = "tauri-plugin-autostart"
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.4"
|
||||
description = "Automatically launch your application at startup."
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-autostart"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustc-args = [ "--cfg", "docsrs" ]
|
||||
rustdoc-args = [ "--cfg", "docsrs" ]
|
||||
rustc-args = ["--cfg", "docsrs"]
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
||||
[build-dependencies]
|
||||
tauri-plugin = { workspace = true, features = [ "build" ] }
|
||||
tauri-plugin = { workspace = true, features = ["build"] }
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true }
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,11 +129,12 @@ pub fn init<R: Runtime>(
|
||||
// exe path to not break it.
|
||||
let exe_path = current_exe.canonicalize()?.display().to_string();
|
||||
let parts: Vec<&str> = exe_path.split(".app/").collect();
|
||||
let app_path = if parts.len() == 2 {
|
||||
format!("{}.app", parts.first().unwrap())
|
||||
} else {
|
||||
exe_path
|
||||
};
|
||||
let app_path =
|
||||
if parts.len() == 2 && matches!(macos_launcher, MacosLauncher::AppleScript) {
|
||||
format!("{}.app", parts.first().unwrap())
|
||||
} else {
|
||||
exe_path
|
||||
};
|
||||
info!("auto_start path {}", &app_path);
|
||||
builder.set_app_path(&app_path);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
- [`326df688`](https://github.com/tauri-apps/plugins-workspace/commit/326df6883998d416fc0837583ed972854628bb52)([#1236](https://github.com/tauri-apps/plugins-workspace/pull/1236)) Fixes command argument parsing on iOS.
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
- [`a04ea2f`](https://github.com/tauri-apps/plugins-workspace/commit/a04ea2f38294d5a3987578283badc8eec87a7752)([#1071](https://github.com/tauri-apps/plugins-workspace/pull/1071)) The global API script is now only added to the binary when the `withGlobalTauri` config is true.
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
[package]
|
||||
name = "tauri-plugin-barcode-scanner"
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.4"
|
||||
description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS"
|
||||
edition = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-barcode-scanner"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_BARCODESCANNER__=function(n){"use strict";async function e(n,e={},r){return window.__TAURI_INTERNALS__.invoke(n,e,r)}var r;return"function"==typeof SuppressedError&&SuppressedError,n.Format=void 0,(r=n.Format||(n.Format={})).QRCode="QR_CODE",r.UPC_A="UPC_A",r.UPC_E="UPC_E",r.EAN8="EAN_8",r.EAN13="EAN_13",r.Code39="CODE_39",r.Code93="CODE_93",r.Code128="CODE_128",r.Codabar="CODABAR",r.ITF="ITF",r.Aztec="AZTEC",r.DataMatrix="DATA_MATRIX",r.PDF417="PDF_417",n.cancel=async function(){return await e("plugin:barcode-scanner|cancel")},n.checkPermissions=async function(){return await e("plugin:barcode-scanner|check_permissions").then((n=>n.camera))},n.openAppSettings=async function(){return await e("plugin:barcode-scanner|open_app_settings")},n.requestPermissions=async function(){return await e("plugin:barcode-scanner|request_permissions").then((n=>n.camera))},n.scan=async function(n){return await e("plugin:barcode-scanner|scan",{...n})},n}({});Object.defineProperty(window.__TAURI__,"barcodeScanner",{value:__TAURI_PLUGIN_BARCODESCANNER__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_BARCODESCANNER__=function(n){"use strict";async function e(n,e={},a){return window.__TAURI_INTERNALS__.invoke(n,e,a)}var a;return"function"==typeof SuppressedError&&SuppressedError,n.Format=void 0,(a=n.Format||(n.Format={})).QRCode="QR_CODE",a.UPC_A="UPC_A",a.UPC_E="UPC_E",a.EAN8="EAN_8",a.EAN13="EAN_13",a.Code39="CODE_39",a.Code93="CODE_93",a.Code128="CODE_128",a.Codabar="CODABAR",a.ITF="ITF",a.Aztec="AZTEC",a.DataMatrix="DATA_MATRIX",a.PDF417="PDF_417",n.cancel=async function(){await e("plugin:barcode-scanner|cancel")},n.checkPermissions=async function(){return await e("plugin:barcode-scanner|check_permissions").then((n=>n.camera))},n.openAppSettings=async function(){await e("plugin:barcode-scanner|open_app_settings")},n.requestPermissions=async function(){return await e("plugin:barcode-scanner|request_permissions").then((n=>n.camera))},n.scan=async function(n){return await e("plugin:barcode-scanner|scan",{...n})},n}({});Object.defineProperty(window.__TAURI__,"barcodeScanner",{value:__TAURI_PLUGIN_BARCODESCANNER__})}
|
||||
|
||||
@@ -46,7 +46,7 @@ export async function scan(options?: ScanOptions): Promise<Scanned> {
|
||||
* Cancel the current scan process.
|
||||
*/
|
||||
export async function cancel(): Promise<void> {
|
||||
return await invoke("plugin:barcode-scanner|cancel");
|
||||
await invoke("plugin:barcode-scanner|cancel");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,5 +71,5 @@ export async function requestPermissions(): Promise<PermissionState> {
|
||||
* Open application settings. Useful if permission was denied and the user must manually enable it.
|
||||
*/
|
||||
export async function openAppSettings(): Promise<void> {
|
||||
return await invoke("plugin:barcode-scanner|open_app_settings");
|
||||
await invoke("plugin:barcode-scanner|open_app_settings");
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import UIKit
|
||||
import WebKit
|
||||
|
||||
struct ScanOptions: Decodable {
|
||||
var formats: [SupportedFormat] = []
|
||||
var formats: [SupportedFormat]?
|
||||
let windowed: Bool?
|
||||
let cameraDirection: String?
|
||||
}
|
||||
@@ -241,7 +241,7 @@ class BarcodeScannerPlugin: Plugin, AVCaptureMetadataOutputObjectsDelegate {
|
||||
private func runScanner(_ invoke: Invoke, args: ScanOptions) {
|
||||
scanFormats = [AVMetadataObject.ObjectType]()
|
||||
|
||||
args.formats.forEach { format in
|
||||
(args.formats ?? []).forEach { format in
|
||||
scanFormats.append(format.value)
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ pub struct BarcodeScanner<R: Runtime>(PluginHandle<R>);
|
||||
|
||||
impl<R: Runtime> BarcodeScanner<R> {}
|
||||
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the barcode scanner APIs.
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the barcode scanner APIs.
|
||||
pub trait BarcodeScannerExt<R: Runtime> {
|
||||
fn barcode_scanner(&self) -> &BarcodeScanner<R>;
|
||||
}
|
||||
|
||||
@@ -5,14 +5,15 @@ description = "Prompt the user for biometric authentication on Android and iOS."
|
||||
edition = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-biometric"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustc-args = [ "--cfg", "docsrs" ]
|
||||
rustdoc-args = [ "--cfg", "docsrs" ]
|
||||
rustc-args = ["--cfg", "docsrs"]
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
||||
[build-dependencies]
|
||||
tauri-plugin = { workspace = true, features = [ "build" ] }
|
||||
tauri-plugin = { workspace = true, features = ["build"] }
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true }
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_BIOMETRIC__=function(e){"use strict";async function n(e,n={},r){return window.__TAURI_INTERNALS__.invoke(e,n,r)}var r;return"function"==typeof SuppressedError&&SuppressedError,e.BiometryType=void 0,(r=e.BiometryType||(e.BiometryType={}))[r.None=0]="None",r[r.TouchID=1]="TouchID",r[r.FaceID=2]="FaceID",r[r.Iris=3]="Iris",e.authenticate=async function(e,r){return n("plugin:biometric|authenticate",{reason:e,...r})},e.checkStatus=async function(){return n("plugin:biometric|status")},e}({});Object.defineProperty(window.__TAURI__,"biometric",{value:__TAURI_PLUGIN_BIOMETRIC__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_BIOMETRIC__=function(e){"use strict";async function i(e,i={},t){return window.__TAURI_INTERNALS__.invoke(e,i,t)}var t;return"function"==typeof SuppressedError&&SuppressedError,e.BiometryType=void 0,(t=e.BiometryType||(e.BiometryType={}))[t.None=0]="None",t[t.TouchID=1]="TouchID",t[t.FaceID=2]="FaceID",t[t.Iris=3]="Iris",e.authenticate=async function(e,t){await i("plugin:biometric|authenticate",{reason:e,...t})},e.checkStatus=async function(){return await i("plugin:biometric|status")},e}({});Object.defineProperty(window.__TAURI__,"biometric",{value:__TAURI_PLUGIN_BIOMETRIC__})}
|
||||
|
||||
@@ -51,7 +51,7 @@ export interface AuthOptions {
|
||||
* @returns a promise resolving to an object containing all the information about the status of the biometry.
|
||||
*/
|
||||
export async function checkStatus(): Promise<Status> {
|
||||
return invoke("plugin:biometric|status");
|
||||
return await invoke("plugin:biometric|status");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,7 +70,7 @@ export async function authenticate(
|
||||
reason: string,
|
||||
options?: AuthOptions,
|
||||
): Promise<void> {
|
||||
return invoke("plugin:biometric|authenticate", {
|
||||
await invoke("plugin:biometric|authenticate", {
|
||||
reason,
|
||||
...options,
|
||||
});
|
||||
|
||||
@@ -23,10 +23,7 @@
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"devDependencies": {
|
||||
"tslib": "2.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ impl<R: Runtime> Biometric<R> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the biometric APIs.
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the biometric APIs.
|
||||
pub trait BiometricExt<R: Runtime> {
|
||||
fn biometric(&self) -> &Biometric<R>;
|
||||
}
|
||||
|
||||
@@ -6,14 +6,15 @@ edition = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-cli"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustc-args = [ "--cfg", "docsrs" ]
|
||||
rustdoc-args = [ "--cfg", "docsrs" ]
|
||||
rustc-args = ["--cfg", "docsrs"]
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
||||
[build-dependencies]
|
||||
tauri-plugin = { workspace = true, features = [ "build" ] }
|
||||
tauri-plugin = { workspace = true, features = ["build"] }
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true }
|
||||
@@ -21,4 +22,4 @@ serde_json = { workspace = true }
|
||||
tauri = { workspace = true }
|
||||
log = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
clap = { version = "4", features = [ "string" ] }
|
||||
clap = { version = "4", features = ["string"] }
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.1.0-beta.1]
|
||||
|
||||
- [`27b258c`](https://github.com/tauri-apps/plugins-workspace/commit/27b258cf31ae5557c99ae66537fb9196368d4d8b)([#1185](https://github.com/tauri-apps/plugins-workspace/pull/1185)) Expose `Clipboard` struct
|
||||
- [`e3d41f4`](https://github.com/tauri-apps/plugins-workspace/commit/e3d41f4011bd3ea3ce281bb38bbe31d3709f8e0f)([#1191](https://github.com/tauri-apps/plugins-workspace/pull/1191)) Internally use the webview scoped resources table instead of the app one, so other webviews can't access other webviews resources.
|
||||
- [`e3d41f4`](https://github.com/tauri-apps/plugins-workspace/commit/e3d41f4011bd3ea3ce281bb38bbe31d3709f8e0f)([#1191](https://github.com/tauri-apps/plugins-workspace/pull/1191)) Update for tauri 2.0.0-beta.15.
|
||||
|
||||
## \[2.1.0-beta.0]
|
||||
|
||||
- [`9dec960`](https://github.com/tauri-apps/plugins-workspace/commit/9dec9605ed1ce19dbef697e55debddf9008ecba1)([#845](https://github.com/tauri-apps/plugins-workspace/pull/845)) Add support for `read_image` and `write_image` to the clipboard plugin (desktop).
|
||||
@@ -51,7 +57,7 @@
|
||||
|
||||
- [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
|
||||
717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
|
||||
`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
|
||||
\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
|
||||
te to alpha.11.
|
||||
|
||||
## \[2.0.0-alpha.0]
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
[package]
|
||||
name = "tauri-plugin-clipboard-manager"
|
||||
version = "2.1.0-beta.0"
|
||||
version = "2.1.0-beta.1"
|
||||
description = "Read and write to the system clipboard."
|
||||
edition = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-clipboard-manager"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_CLIPBOARDMANAGER__=function(e){"use strict";var r;async function t(e,r={},t){return window.__TAURI_INTERNALS__.invoke(e,r,t)}"function"==typeof SuppressedError&&SuppressedError;class n{get rid(){return function(e,r,t,n){if("a"===t&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof r?e!==r||!n:!r.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?n:"a"===t?n.call(e):n?n.value:r.get(e)}(this,r,"f")}constructor(e){r.set(this,void 0),function(e,r,t,n,a){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof r?e!==r||!a:!r.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?a.call(e,t):a?a.value=t:r.set(e,t)}(this,r,e,"f")}async close(){return t("plugin:resources|close",{rid:this.rid})}}r=new WeakMap;class a extends n{constructor(e){super(e)}static async new(e,r,n){return t("plugin:image|new",{rgba:i(e),width:r,height:n}).then((e=>new a(e)))}static async fromBytes(e){return t("plugin:image|from_bytes",{bytes:i(e)}).then((e=>new a(e)))}static async fromPath(e){return t("plugin:image|from_path",{path:e}).then((e=>new a(e)))}async rgba(){return t("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return t("plugin:image|size",{rid:this.rid})}}function i(e){return null==e?null:"string"==typeof e?e:e instanceof Uint8Array?Array.from(e):e instanceof ArrayBuffer?Array.from(new Uint8Array(e)):e instanceof a?e.rid:e}return e.clear=async function(){await t("plugin:clipboard-manager|clear")},e.readImage=async function(){return await t("plugin:clipboard-manager|read_image").then((e=>new a(e)))},e.readText=async function(){return(await t("plugin:clipboard-manager|read_text")).plainText.text},e.writeHtml=async function(e,r){return t("plugin:clipboard-manager|write_html",{data:{html:{html:e,altHtml:r}}})},e.writeImage=async function(e){return t("plugin:clipboard-manager|write_image",{data:{image:{image:i(e)}}})},e.writeText=async function(e,r){return t("plugin:clipboard-manager|write_text",{data:{plainText:{label:r?.label,text:e}}})},e}({});Object.defineProperty(window.__TAURI__,"clipboardManager",{value:__TAURI_PLUGIN_CLIPBOARDMANAGER__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_CLIPBOARDMANAGER__=function(e){"use strict";var t;async function n(e,t={},n){return window.__TAURI_INTERNALS__.invoke(e,t,n)}"function"==typeof SuppressedError&&SuppressedError;class r{get rid(){return function(e,t,n,r){if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t.get(e)}(this,t)}constructor(e){t.set(this,void 0),function(e,t,n,r,a){if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,n)}(this,t,e)}async close(){return n("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class a extends r{constructor(e){super(e)}static async new(e,t,r){return n("plugin:image|new",{rgba:i(e),width:t,height:r}).then((e=>new a(e)))}static async fromBytes(e){return n("plugin:image|from_bytes",{bytes:i(e)}).then((e=>new a(e)))}static async fromPath(e){return n("plugin:image|from_path",{path:e}).then((e=>new a(e)))}async rgba(){return n("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return n("plugin:image|size",{rid:this.rid})}}function i(e){return null==e?null:"string"==typeof e?e:e instanceof Uint8Array?Array.from(e):e instanceof ArrayBuffer?Array.from(new Uint8Array(e)):e instanceof a?e.rid:e}return e.clear=async function(){await n("plugin:clipboard-manager|clear")},e.readImage=async function(){return await n("plugin:clipboard-manager|read_image").then((e=>new a(e)))},e.readText=async function(){return(await n("plugin:clipboard-manager|read_text")).plainText.text},e.writeHtml=async function(e,t){await n("plugin:clipboard-manager|write_html",{data:{html:{html:e,altHtml:t}}})},e.writeImage=async function(e){await n("plugin:clipboard-manager|write_image",{data:{image:{image:i(e)}}})},e.writeText=async function(e,t){await n("plugin:clipboard-manager|write_text",{data:{plainText:{label:t?.label,text:e}}})},e}({});Object.defineProperty(window.__TAURI__,"clipboardManager",{value:__TAURI_PLUGIN_CLIPBOARDMANAGER__})}
|
||||
|
||||
@@ -30,7 +30,7 @@ async function writeText(
|
||||
text: string,
|
||||
opts?: { label?: string },
|
||||
): Promise<void> {
|
||||
return invoke("plugin:clipboard-manager|write_text", {
|
||||
await invoke("plugin:clipboard-manager|write_text", {
|
||||
data: {
|
||||
plainText: {
|
||||
label: opts?.label,
|
||||
@@ -93,7 +93,7 @@ async function readImage(): Promise<Image> {
|
||||
async function writeImage(
|
||||
image: string | Image | Uint8Array | ArrayBuffer | number[],
|
||||
): Promise<void> {
|
||||
return invoke("plugin:clipboard-manager|write_image", {
|
||||
await invoke("plugin:clipboard-manager|write_image", {
|
||||
data: {
|
||||
image: {
|
||||
image: transformImage(image),
|
||||
@@ -117,7 +117,7 @@ async function writeImage(
|
||||
* @since 2.0.0
|
||||
*/
|
||||
async function writeHtml(html: string, altHtml?: string): Promise<void> {
|
||||
return invoke("plugin:clipboard-manager|write_html", {
|
||||
await invoke("plugin:clipboard-manager|write_html", {
|
||||
data: {
|
||||
html: {
|
||||
html,
|
||||
@@ -138,7 +138,6 @@ async function writeHtml(html: string, altHtml?: string): Promise<void> {
|
||||
*/
|
||||
async function clear(): Promise<void> {
|
||||
await invoke("plugin:clipboard-manager|clear");
|
||||
return;
|
||||
}
|
||||
|
||||
export { writeText, readText, writeHtml, clear, readImage, writeImage };
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
use tauri::{command, AppHandle, Manager, ResourceId, Runtime, State};
|
||||
use tauri::{command, AppHandle, Manager, ResourceId, Runtime, State, Webview};
|
||||
|
||||
use crate::{ClipKind, Clipboard, ClipboardContents, Result};
|
||||
|
||||
@@ -17,11 +17,12 @@ pub(crate) async fn write_text<R: Runtime>(
|
||||
|
||||
#[command]
|
||||
pub(crate) async fn write_image<R: Runtime>(
|
||||
_app: AppHandle<R>,
|
||||
webview: Webview<R>,
|
||||
clipboard: State<'_, Clipboard<R>>,
|
||||
data: ClipKind,
|
||||
) -> Result<()> {
|
||||
clipboard.write_image(data)
|
||||
let resources_table = webview.resources_table();
|
||||
clipboard.write_image_inner(data, &resources_table)
|
||||
}
|
||||
|
||||
#[command]
|
||||
@@ -34,11 +35,11 @@ pub(crate) async fn read_text<R: Runtime>(
|
||||
|
||||
#[command]
|
||||
pub(crate) async fn read_image<R: Runtime>(
|
||||
app: AppHandle<R>,
|
||||
webview: Webview<R>,
|
||||
clipboard: State<'_, Clipboard<R>>,
|
||||
) -> Result<ResourceId> {
|
||||
let image = clipboard.read_image()?.to_owned();
|
||||
let mut resources_table = app.resources_table();
|
||||
let mut resources_table = webview.resources_table();
|
||||
let rid = resources_table.add(image);
|
||||
Ok(rid)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
use arboard::ImageData;
|
||||
use image::ImageEncoder;
|
||||
use serde::de::DeserializeOwned;
|
||||
use tauri::{image::Image, plugin::PluginApi, AppHandle, Runtime};
|
||||
use tauri::{image::Image, plugin::PluginApi, AppHandle, Manager, ResourceTable, Runtime};
|
||||
|
||||
use crate::models::*;
|
||||
|
||||
@@ -39,11 +39,15 @@ impl<R: Runtime> Clipboard<R> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn write_image(&self, kind: ClipKind) -> crate::Result<()> {
|
||||
pub(crate) fn write_image_inner(
|
||||
&self,
|
||||
kind: ClipKind,
|
||||
resources_table: &ResourceTable,
|
||||
) -> crate::Result<()> {
|
||||
match kind {
|
||||
ClipKind::Image { image, .. } => match &self.clipboard {
|
||||
Ok(clipboard) => {
|
||||
let image = image.into_img(&self.app)?;
|
||||
let image = image.into_img(resources_table)?;
|
||||
clipboard
|
||||
.lock()
|
||||
.unwrap()
|
||||
@@ -60,6 +64,11 @@ impl<R: Runtime> Clipboard<R> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn write_image(&self, kind: ClipKind) -> crate::Result<()> {
|
||||
let resources_table = self.app.resources_table();
|
||||
self.write_image_inner(kind, &resources_table)
|
||||
}
|
||||
|
||||
pub fn read_text(&self) -> crate::Result<ClipboardContents> {
|
||||
match &self.clipboard {
|
||||
Ok(clipboard) => {
|
||||
|
||||
@@ -30,11 +30,11 @@ mod models;
|
||||
pub use error::{Error, Result};
|
||||
|
||||
#[cfg(desktop)]
|
||||
use desktop::Clipboard;
|
||||
pub use desktop::Clipboard;
|
||||
#[cfg(mobile)]
|
||||
use mobile::Clipboard;
|
||||
pub use mobile::Clipboard;
|
||||
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the clipboard APIs.
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the clipboard APIs.
|
||||
pub trait ClipboardExt<R: Runtime> {
|
||||
fn clipboard(&self) -> &Clipboard<R>;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,16 @@ impl<R: Runtime> Clipboard<R> {
|
||||
self.0.run_mobile_plugin("write", kind).map_err(Into::into)
|
||||
}
|
||||
|
||||
pub(crate) fn write_image_inner(
|
||||
&self,
|
||||
kind: ClipKind,
|
||||
resources_table: &tauri::ResourceTable,
|
||||
) -> crate::Result<()> {
|
||||
Err(crate::Error::Clipboard(
|
||||
"Unsupported on this platform".to_string(),
|
||||
))
|
||||
}
|
||||
|
||||
pub fn write_image(&self, kind: ClipKind) -> crate::Result<()> {
|
||||
Err(crate::Error::Clipboard(
|
||||
"Unsupported on this platform".to_string(),
|
||||
|
||||
@@ -6,17 +6,18 @@ authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-deep-link"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustc-args = [ "--cfg", "docsrs" ]
|
||||
rustdoc-args = [ "--cfg", "docsrs" ]
|
||||
targets = [ "x86_64-linux-android" ]
|
||||
rustc-args = ["--cfg", "docsrs"]
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
targets = ["x86_64-linux-android"]
|
||||
|
||||
[build-dependencies]
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
tauri-plugin = { workspace = true, features = [ "build" ] }
|
||||
tauri-plugin = { workspace = true, features = ["build"] }
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true }
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_DEEPLINK__=function(e){"use strict";function n(e,n=!1){return window.__TAURI_INTERNALS__.transformCallback(e,n)}async function t(e,n={},t){return window.__TAURI_INTERNALS__.invoke(e,n,t)}var r;async function i(e,r,i){const _="string"==typeof i?.target?{kind:"AnyLabel",label:i.target}:i?.target??{kind:"Any"};return t("plugin:event|listen",{event:e,target:_,handler:n(r)}).then((n=>async()=>async function(e,n){await t("plugin:event|unlisten",{event:e,eventId:n})}(e,n)))}async function _(){return await t("plugin:deep-link|get_current")}return"function"==typeof SuppressedError&&SuppressedError,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WEBVIEW_CREATED="tauri://webview-created",e.FILE_DROP="tauri://file-drop",e.FILE_DROP_HOVER="tauri://file-drop-hover",e.FILE_DROP_CANCELLED="tauri://file-drop-cancelled"}(r||(r={})),e.getCurrent=_,e.onOpenUrl=async function(e){const n=await _();return null!=n&&e(n),await i("deep-link://new-url",(n=>e(n.payload)))},e}({});Object.defineProperty(window.__TAURI__,"deepLink",{value:__TAURI_PLUGIN_DEEPLINK__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_DEEPLINK__=function(e){"use strict";function n(e,n=!1){return window.__TAURI_INTERNALS__.transformCallback(e,n)}async function r(e,n={},r){return window.__TAURI_INTERNALS__.invoke(e,n,r)}var t;async function i(e,t,i){return r("plugin:event|listen",{event:e,target:{kind:"Any"},handler:n(t)}).then((n=>async()=>async function(e,n){await r("plugin:event|unlisten",{event:e,eventId:n})}(e,n)))}async function _(){return await r("plugin:deep-link|get_current")}return"function"==typeof SuppressedError&&SuppressedError,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG="tauri://drag",e.DROP="tauri://drop",e.DROP_OVER="tauri://drop-over",e.DROP_CANCELLED="tauri://drag-cancelled"}(t||(t={})),e.getCurrent=_,e.onOpenUrl=async function(e){const n=await _();return null!=n&&e(n),await i("deep-link://new-url",(n=>{e(n.payload)}))},e}({});Object.defineProperty(window.__TAURI__,"deepLink",{value:__TAURI_PLUGIN_DEEPLINK__})}
|
||||
|
||||
@@ -8,7 +8,6 @@ pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
"tauri": "tauri"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6",
|
||||
"@tauri-apps/api": "2.0.0-beta.8",
|
||||
"@tauri-apps/plugin-deep-link": "2.0.0-beta.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tauri-apps/cli": "2.0.0-beta.9",
|
||||
"@tauri-apps/cli": "2.0.0-beta.13",
|
||||
"internal-ip": "^8.0.0",
|
||||
"typescript": "^5.2.2",
|
||||
"vite": "^5.0.12"
|
||||
"vite": "^5.0.13"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
import { UnlistenFn, listen } from "@tauri-apps/api/event";
|
||||
import { type UnlistenFn, listen } from "@tauri-apps/api/event";
|
||||
|
||||
export async function getCurrent(): Promise<string[] | null> {
|
||||
return await invoke<string[] | null>("plugin:deep-link|get_current");
|
||||
@@ -19,7 +19,7 @@ export async function onOpenUrl(
|
||||
handler(current);
|
||||
}
|
||||
|
||||
return await listen<string[]>("deep-link://new-url", (event) =>
|
||||
handler(event.payload),
|
||||
);
|
||||
return await listen<string[]>("deep-link://new-url", (event) => {
|
||||
handler(event.payload);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ mod imp {
|
||||
|
||||
pub use imp::DeepLink;
|
||||
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the deep-link APIs.
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the deep-link APIs.
|
||||
pub trait DeepLinkExt<R: Runtime> {
|
||||
fn deep_link(&self) -> &DeepLink<R>;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.6]
|
||||
|
||||
- [`326df688`](https://github.com/tauri-apps/plugins-workspace/commit/326df6883998d416fc0837583ed972854628bb52)([#1236](https://github.com/tauri-apps/plugins-workspace/pull/1236)) Fixes command argument parsing on iOS.
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `fs@2.0.0-beta.6`
|
||||
|
||||
## \[2.0.0-beta.5]
|
||||
|
||||
- [`bb51a41`](https://github.com/tauri-apps/plugins-workspace/commit/bb51a41d67ebf989e8aedf10c4b1a7f9514d1bdf)([#1168](https://github.com/tauri-apps/plugins-workspace/pull/1168)) **Breaking Change:** All apis that return paths to the frontend will now remove the `\\?\` UNC prefix on Windows.
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `fs@2.0.0-beta.5`
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
- [`4cd8112`](https://github.com/tauri-apps/plugins-workspace/commit/4cd81126fdf25e1847546f8fdbd924aa4bfeabb5)([#1056](https://github.com/tauri-apps/plugins-workspace/pull/1056)) Fixed an issue where dialogs on android would return the Content URI instead of the file path
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Upgraded to `fs@2.0.0-beta.4`
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
- [`35ea595`](https://github.com/tauri-apps/plugins-workspace/commit/35ea5956d060f0bdafd140f2541c607bb811805b)([#1073](https://github.com/tauri-apps/plugins-workspace/pull/1073)) Fixed an issue where the dialog apis panicked when they were called with no application windows open.
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
[package]
|
||||
name = "tauri-plugin-dialog"
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.6"
|
||||
description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application."
|
||||
edition = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-dialog"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
@@ -22,10 +23,8 @@ serde_json = { workspace = true }
|
||||
tauri = { workspace = true }
|
||||
log = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.3" }
|
||||
|
||||
[target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
|
||||
glib = "0.16"
|
||||
dunce = { workspace = true }
|
||||
tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.6" }
|
||||
|
||||
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
|
||||
rfd = { version = "0.14", default-features = false, features = [ "tokio", "gtk3", "common-controls-v6" ] }
|
||||
|
||||
@@ -141,7 +141,7 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) {
|
||||
fileResult.put("modifiedAt", modifiedAt)
|
||||
}
|
||||
fileResult.put("name", FilePickerUtils.getNameFromUri(activity, uri))
|
||||
fileResult.put("path", FilePickerUtils.getPathFromUri(uri))
|
||||
fileResult.put("path", FilePickerUtils.getPathFromUri(activity, uri))
|
||||
fileResult.put("size", FilePickerUtils.getSizeFromUri(activity, uri))
|
||||
filesResultList.add(fileResult)
|
||||
}
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
|
||||
package app.tauri.dialog
|
||||
|
||||
|
||||
import android.content.ContentUris
|
||||
import android.database.Cursor
|
||||
import android.provider.MediaStore
|
||||
import android.content.Context
|
||||
import android.graphics.BitmapFactory
|
||||
import android.media.MediaMetadataRetriever
|
||||
import android.net.Uri
|
||||
import android.os.Environment
|
||||
import android.provider.DocumentsContract
|
||||
import android.provider.OpenableColumns
|
||||
import android.util.Base64
|
||||
@@ -21,8 +26,40 @@ class FilePickerUtils {
|
||||
class FileResolution(var height: Int, var width: Int)
|
||||
|
||||
companion object {
|
||||
fun getPathFromUri(uri: Uri): String {
|
||||
return uri.toString()
|
||||
fun getPathFromUri(context: Context, uri: Uri): String? {
|
||||
if (DocumentsContract.isDocumentUri(context, uri)) {
|
||||
if (isExternalStorageDocument(uri)) {
|
||||
val docId = DocumentsContract.getDocumentId(uri)
|
||||
val split = docId.split(":")
|
||||
return if ("primary".equals(split[0], ignoreCase = true)) {
|
||||
"${Environment.getExternalStorageDirectory()}/${split[1]}"
|
||||
} else {
|
||||
null
|
||||
}
|
||||
} else if (isDownloadsDocument(uri)) {
|
||||
val id = DocumentsContract.getDocumentId(uri)
|
||||
val contentUri = ContentUris.withAppendedId(
|
||||
Uri.parse("content://downloads/public_downloads"), java.lang.Long.valueOf(id))
|
||||
return getDataColumn(context, contentUri, null, null)
|
||||
} else if (isMediaDocument(uri)) {
|
||||
val docId = DocumentsContract.getDocumentId(uri)
|
||||
val split = docId.split(":")
|
||||
val contentUri: Uri? = when (split[0]) {
|
||||
"image" -> MediaStore.Images.Media.EXTERNAL_CONTENT_URI
|
||||
"video" -> MediaStore.Video.Media.EXTERNAL_CONTENT_URI
|
||||
"audio" -> MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
|
||||
else -> null
|
||||
}
|
||||
val selection = "_id=?"
|
||||
val selectionArgs = arrayOf(split[1])
|
||||
return getDataColumn(context, contentUri, selection, selectionArgs)
|
||||
}
|
||||
} else if ("content".equals(uri.scheme, ignoreCase = true)) {
|
||||
return getDataColumn(context, uri, null, null)
|
||||
} else if ("file".equals(uri.scheme, ignoreCase = true)) {
|
||||
return uri.path
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun getNameFromUri(context: Context, uri: Uri): String? {
|
||||
@@ -36,7 +73,7 @@ class FilePickerUtils {
|
||||
displayName = cursor.getString(columnIdx)
|
||||
cursor.close()
|
||||
}
|
||||
if (displayName == null || displayName.isEmpty()) {
|
||||
if (displayName.isNullOrEmpty()) {
|
||||
displayName = uri.lastPathSegment
|
||||
}
|
||||
return displayName
|
||||
@@ -162,4 +199,32 @@ class FilePickerUtils {
|
||||
return os.toByteArray()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getDataColumn(context: Context, uri: Uri?, selection: String?, selectionArgs: Array<String>?): String? {
|
||||
var cursor: Cursor? = null
|
||||
val column = "_data"
|
||||
val projection = arrayOf(column)
|
||||
try {
|
||||
cursor = context.contentResolver.query(uri!!, projection, selection, selectionArgs, null)
|
||||
if (cursor != null && cursor.moveToFirst()) {
|
||||
val columnIndex = cursor.getColumnIndexOrThrow(column)
|
||||
return cursor.getString(columnIndex)
|
||||
}
|
||||
} finally {
|
||||
cursor?.close()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun isExternalStorageDocument(uri: Uri): Boolean {
|
||||
return "com.android.externalstorage.documents" == uri.authority
|
||||
}
|
||||
|
||||
private fun isDownloadsDocument(uri: Uri): Boolean {
|
||||
return "com.android.providers.downloads.documents" == uri.authority
|
||||
}
|
||||
|
||||
private fun isMediaDocument(uri: Uri): Boolean {
|
||||
return "com.android.providers.media.documents" == uri.authority
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_DIALOG__=function(t){"use strict";async function n(t,n={},e){return window.__TAURI_INTERNALS__.invoke(t,n,e)}return"function"==typeof SuppressedError&&SuppressedError,t.ask=async function(t,e){const o="string"==typeof e?{title:e}:e;return n("plugin:dialog|ask",{message:t.toString(),title:o?.title?.toString(),kind:o?.kind,okButtonLabel:o?.okLabel?.toString()??"Yes",cancelButtonLabel:o?.cancelLabel?.toString()??"No"})},t.confirm=async function(t,e){const o="string"==typeof e?{title:e}:e;return n("plugin:dialog|confirm",{message:t.toString(),title:o?.title?.toString(),kind:o?.kind,okButtonLabel:o?.okLabel?.toString()??"Ok",cancelButtonLabel:o?.cancelLabel?.toString()??"Cancel"})},t.message=async function(t,e){const o="string"==typeof e?{title:e}:e;return n("plugin:dialog|message",{message:t.toString(),title:o?.title?.toString(),kind:o?.kind,okButtonLabel:o?.okLabel?.toString()})},t.open=async function(t={}){return"object"==typeof t&&Object.freeze(t),n("plugin:dialog|open",{options:t})},t.save=async function(t={}){return"object"==typeof t&&Object.freeze(t),n("plugin:dialog|save",{options:t})},t}({});Object.defineProperty(window.__TAURI__,"dialog",{value:__TAURI_PLUGIN_DIALOG__})}
|
||||
if("__TAURI__"in window){var __TAURI_PLUGIN_DIALOG__=function(t){"use strict";async function n(t,n={},e){return window.__TAURI_INTERNALS__.invoke(t,n,e)}return"function"==typeof SuppressedError&&SuppressedError,t.ask=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|ask",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()??"Yes",cancelButtonLabel:i?.cancelLabel?.toString()??"No"})},t.confirm=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|confirm",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()??"Ok",cancelButtonLabel:i?.cancelLabel?.toString()??"Cancel"})},t.message=async function(t,e){const i="string"==typeof e?{title:e}:e;await n("plugin:dialog|message",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()})},t.open=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|open",{options:t})},t.save=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|save",{options:t})},t}({});Object.defineProperty(window.__TAURI__,"dialog",{value:__TAURI_PLUGIN_DIALOG__})}
|
||||
|
||||
@@ -163,13 +163,14 @@ type OpenDialogReturn<T extends OpenDialogOptions> = T["directory"] extends true
|
||||
* @since 2.0.0
|
||||
*/
|
||||
async function open<T extends OpenDialogOptions>(
|
||||
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
||||
options: T = {} as T,
|
||||
): Promise<OpenDialogReturn<T>> {
|
||||
if (typeof options === "object") {
|
||||
Object.freeze(options);
|
||||
}
|
||||
|
||||
return invoke("plugin:dialog|open", { options });
|
||||
return await invoke("plugin:dialog|open", { options });
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,7 +202,7 @@ async function save(options: SaveDialogOptions = {}): Promise<string | null> {
|
||||
Object.freeze(options);
|
||||
}
|
||||
|
||||
return invoke("plugin:dialog|save", { options });
|
||||
return await invoke("plugin:dialog|save", { options });
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,7 +227,7 @@ async function message(
|
||||
options?: string | MessageDialogOptions,
|
||||
): Promise<void> {
|
||||
const opts = typeof options === "string" ? { title: options } : options;
|
||||
return invoke("plugin:dialog|message", {
|
||||
await invoke("plugin:dialog|message", {
|
||||
message: message.toString(),
|
||||
title: opts?.title?.toString(),
|
||||
kind: opts?.kind,
|
||||
@@ -255,7 +256,7 @@ async function ask(
|
||||
options?: string | ConfirmDialogOptions,
|
||||
): Promise<boolean> {
|
||||
const opts = typeof options === "string" ? { title: options } : options;
|
||||
return invoke("plugin:dialog|ask", {
|
||||
return await invoke("plugin:dialog|ask", {
|
||||
message: message.toString(),
|
||||
title: opts?.title?.toString(),
|
||||
kind: opts?.kind,
|
||||
@@ -285,7 +286,7 @@ async function confirm(
|
||||
options?: string | ConfirmDialogOptions,
|
||||
): Promise<boolean> {
|
||||
const opts = typeof options === "string" ? { title: options } : options;
|
||||
return invoke("plugin:dialog|confirm", {
|
||||
return await invoke("plugin:dialog|confirm", {
|
||||
message: message.toString(),
|
||||
title: opts?.title?.toString(),
|
||||
kind: opts?.kind,
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
|
||||
window.alert = function (message: string) {
|
||||
invoke("plugin:dialog|message", {
|
||||
void invoke("plugin:dialog|message", {
|
||||
message: message.toString(),
|
||||
});
|
||||
};
|
||||
|
||||
// @ts-expect-error tauri does not have sync IPC :(
|
||||
window.confirm = function (message: string) {
|
||||
return invoke("plugin:dialog|confirm", {
|
||||
window.confirm = async function (message: string) {
|
||||
return await invoke("plugin:dialog|confirm", {
|
||||
message: message.toString(),
|
||||
});
|
||||
};
|
||||
|
||||
@@ -19,18 +19,18 @@ enum FilePickerEvent {
|
||||
struct MessageDialogOptions: Decodable {
|
||||
let title: String?
|
||||
let message: String
|
||||
var okButtonLabel = "OK"
|
||||
var cancelButtonLabel = "Cancel"
|
||||
let okButtonLabel: String?
|
||||
let cancelButtonLabel: String?
|
||||
}
|
||||
|
||||
struct Filter: Decodable {
|
||||
var extensions: [String] = []
|
||||
var extensions: [String]?
|
||||
}
|
||||
|
||||
struct FilePickerOptions: Decodable {
|
||||
var multiple = false
|
||||
var readData = false
|
||||
var filters: [Filter] = []
|
||||
var multiple: Bool?
|
||||
var readData: Bool?
|
||||
var filters: [Filter]?
|
||||
}
|
||||
|
||||
class DialogPlugin: Plugin {
|
||||
@@ -47,7 +47,7 @@ class DialogPlugin: Plugin {
|
||||
@objc public func showFilePicker(_ invoke: Invoke) throws {
|
||||
let args = try invoke.parseArgs(FilePickerOptions.self)
|
||||
|
||||
let parsedTypes = parseFiltersOption(args.filters)
|
||||
let parsedTypes = parseFiltersOption(args.filters ?? [])
|
||||
|
||||
var isMedia = true
|
||||
var uniqueMimeType: Bool? = nil
|
||||
@@ -74,7 +74,7 @@ class DialogPlugin: Plugin {
|
||||
DispatchQueue.main.async {
|
||||
if #available(iOS 14, *) {
|
||||
var configuration = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared())
|
||||
configuration.selectionLimit = args.multiple ? 0 : 1
|
||||
configuration.selectionLimit = (args.multiple ?? false) ? 0 : 1
|
||||
|
||||
if uniqueMimeType == true {
|
||||
if mimeKind == "image" {
|
||||
@@ -106,7 +106,7 @@ class DialogPlugin: Plugin {
|
||||
DispatchQueue.main.async {
|
||||
let picker = UIDocumentPickerViewController(documentTypes: documentTypes, in: .import)
|
||||
picker.delegate = self.filePickerController
|
||||
picker.allowsMultipleSelection = args.multiple
|
||||
picker.allowsMultipleSelection = args.multiple ?? false
|
||||
picker.modalPresentationStyle = .fullScreen
|
||||
self.presentViewController(picker)
|
||||
}
|
||||
@@ -120,7 +120,7 @@ class DialogPlugin: Plugin {
|
||||
private func parseFiltersOption(_ filters: [Filter]) -> [String] {
|
||||
var parsedTypes: [String] = []
|
||||
for filter in filters {
|
||||
for ext in filter.extensions {
|
||||
for ext in filter.extensions ?? [] {
|
||||
guard
|
||||
let utType: String = UTTypeCreatePreferredIdentifierForTag(
|
||||
kUTTagClassMIMEType, ext as CFString, nil)?.takeRetainedValue() as String?
|
||||
@@ -197,24 +197,36 @@ class DialogPlugin: Plugin {
|
||||
DispatchQueue.main.async { [] in
|
||||
let alert = UIAlertController(
|
||||
title: args.title, message: args.message, preferredStyle: UIAlertController.Style.alert)
|
||||
alert.addAction(
|
||||
UIAlertAction(
|
||||
title: args.cancelButtonLabel, style: UIAlertAction.Style.default,
|
||||
handler: { (_) -> Void in
|
||||
invoke.resolve([
|
||||
"value": false,
|
||||
"cancelled": false,
|
||||
])
|
||||
}))
|
||||
alert.addAction(
|
||||
UIAlertAction(
|
||||
title: args.okButtonLabel, style: UIAlertAction.Style.default,
|
||||
handler: { (_) -> Void in
|
||||
invoke.resolve([
|
||||
"value": true,
|
||||
"cancelled": false,
|
||||
])
|
||||
}))
|
||||
|
||||
let cancelButtonLabel = args.cancelButtonLabel ?? ""
|
||||
if !cancelButtonLabel.isEmpty {
|
||||
alert.addAction(
|
||||
UIAlertAction(
|
||||
title: cancelButtonLabel, style: UIAlertAction.Style.default,
|
||||
handler: { (_) -> Void in
|
||||
Logger.error("cancel")
|
||||
|
||||
invoke.resolve([
|
||||
"value": false,
|
||||
"cancelled": false,
|
||||
])
|
||||
}))
|
||||
}
|
||||
|
||||
let okButtonLabel = args.okButtonLabel ?? (cancelButtonLabel.isEmpty ? "OK" : "")
|
||||
if !okButtonLabel.isEmpty {
|
||||
alert.addAction(
|
||||
UIAlertAction(
|
||||
title: okButtonLabel, style: UIAlertAction.Style.default,
|
||||
handler: { (_) -> Void in
|
||||
Logger.error("ok")
|
||||
|
||||
invoke.resolve([
|
||||
"value": true,
|
||||
"cancelled": false,
|
||||
])
|
||||
}))
|
||||
}
|
||||
|
||||
manager.viewController?.present(alert, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
"LICENSE"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "2.0.0-beta.6"
|
||||
"@tauri-apps/api": "2.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,12 @@ pub(crate) async fn open<R: Runtime>(
|
||||
}
|
||||
}
|
||||
}
|
||||
OpenResponse::Folders(folders)
|
||||
OpenResponse::Folders(folders.map(|folders| {
|
||||
folders
|
||||
.iter()
|
||||
.map(|p| dunce::simplified(p).to_path_buf())
|
||||
.collect()
|
||||
}))
|
||||
} else {
|
||||
let folder = dialog_builder.blocking_pick_folder();
|
||||
if let Some(path) = &folder {
|
||||
@@ -137,7 +142,7 @@ pub(crate) async fn open<R: Runtime>(
|
||||
s.allow_directory(path, options.recursive);
|
||||
}
|
||||
}
|
||||
OpenResponse::Folder(folder)
|
||||
OpenResponse::Folder(folder.map(|p| dunce::simplified(&p).to_path_buf()))
|
||||
}
|
||||
}
|
||||
#[cfg(mobile)]
|
||||
@@ -154,7 +159,15 @@ pub(crate) async fn open<R: Runtime>(
|
||||
.allow_file(&file.path)?;
|
||||
}
|
||||
}
|
||||
OpenResponse::Files(files)
|
||||
OpenResponse::Files(files.map(|files| {
|
||||
files
|
||||
.into_iter()
|
||||
.map(|mut f| {
|
||||
f.path = dunce::simplified(&f.path).to_path_buf();
|
||||
f
|
||||
})
|
||||
.collect()
|
||||
}))
|
||||
} else {
|
||||
let file = dialog_builder.blocking_pick_file();
|
||||
if let Some(file) = &file {
|
||||
@@ -165,7 +178,10 @@ pub(crate) async fn open<R: Runtime>(
|
||||
.state::<tauri::scope::Scopes>()
|
||||
.allow_file(&file.path)?;
|
||||
}
|
||||
OpenResponse::File(file)
|
||||
OpenResponse::File(file.map(|mut f| {
|
||||
f.path = dunce::simplified(&f.path).to_path_buf();
|
||||
f
|
||||
}))
|
||||
};
|
||||
Ok(res)
|
||||
}
|
||||
@@ -208,7 +224,7 @@ pub(crate) async fn save<R: Runtime>(
|
||||
window.state::<tauri::scope::Scopes>().allow_file(p)?;
|
||||
}
|
||||
|
||||
Ok(path)
|
||||
Ok(path.map(|p| dunce::simplified(&p).to_path_buf()))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
!function(){"use strict";async function n(n,i={},o){return window.__TAURI_INTERNALS__.invoke(n,i,o)}"function"==typeof SuppressedError&&SuppressedError,window.alert=function(i){n("plugin:dialog|message",{message:i.toString()})},window.confirm=function(i){return n("plugin:dialog|confirm",{message:i.toString()})}}();
|
||||
!function(){"use strict";async function n(n,i={},o){return window.__TAURI_INTERNALS__.invoke(n,i,o)}"function"==typeof SuppressedError&&SuppressedError,window.alert=function(i){n("plugin:dialog|message",{message:i.toString()})},window.confirm=async function(i){return await n("plugin:dialog|confirm",{message:i.toString()})}}();
|
||||
|
||||
@@ -51,7 +51,7 @@ macro_rules! blocking_fn {
|
||||
}};
|
||||
}
|
||||
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the dialog APIs.
|
||||
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the dialog APIs.
|
||||
pub trait DialogExt<R: Runtime> {
|
||||
fn dialog(&self) -> &Dialog<R>;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# Changelog
|
||||
|
||||
## \[2.0.0-beta.6]
|
||||
|
||||
- [`b115fd22`](https://github.com/tauri-apps/plugins-workspace/commit/b115fd22e0da073f5d758c13474ec2106cf78163)([#1221](https://github.com/tauri-apps/plugins-workspace/pull/1221)) Fixes an issue that caused the app to freeze when the `dialog`, `fs`, and `persisted-scope` plugins were used together.
|
||||
|
||||
## \[2.0.0-beta.5]
|
||||
|
||||
- [`bb51a41`](https://github.com/tauri-apps/plugins-workspace/commit/bb51a41d67ebf989e8aedf10c4b1a7f9514d1bdf)([#1168](https://github.com/tauri-apps/plugins-workspace/pull/1168)) **Breaking Change:** All apis that return paths to the frontend will now remove the `\\?\` UNC prefix on Windows.
|
||||
- [`e3d41f4`](https://github.com/tauri-apps/plugins-workspace/commit/e3d41f4011bd3ea3ce281bb38bbe31d3709f8e0f)([#1191](https://github.com/tauri-apps/plugins-workspace/pull/1191)) Internally use the webview scoped resources table instead of the app one, so other webviews can't access other webviews resources.
|
||||
- [`e3d41f4`](https://github.com/tauri-apps/plugins-workspace/commit/e3d41f4011bd3ea3ce281bb38bbe31d3709f8e0f)([#1191](https://github.com/tauri-apps/plugins-workspace/pull/1191)) Update for tauri 2.0.0-beta.15.
|
||||
|
||||
## \[2.0.0-beta.4]
|
||||
|
||||
- [`9c2fb93`](https://github.com/tauri-apps/plugins-workspace/commit/9c2fb9306ecd3936a2aef56b3c012899036db098) Enhance the scope type to also allow a plain string representing the path to allow or deny.
|
||||
- [`772f2bc`](https://github.com/tauri-apps/plugins-workspace/commit/772f2bc3495a4f83f1c3e538cbac6d29cbd7d5ef)([#1136](https://github.com/tauri-apps/plugins-workspace/pull/1136)) Update for tauri 2.0.0-beta.14.
|
||||
|
||||
## \[2.0.0-beta.3]
|
||||
|
||||
- [`cb96aa0`](https://github.com/tauri-apps/plugins-workspace/commit/cb96aa06277f7b864952827ec9fb1e74c8a1f761)([#1082](https://github.com/tauri-apps/plugins-workspace/pull/1082)) Fixes `watch` and `watchImmediate` which previously ignored the `baseDir` parameter.
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
[package]
|
||||
name = "tauri-plugin-fs"
|
||||
version = "2.0.0-beta.3"
|
||||
version = "2.0.0-beta.6"
|
||||
description = "Access the file system."
|
||||
authors = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
rust-version = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
links = "tauri-plugin-fs"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
@@ -15,11 +16,11 @@ rustdoc-args = [ "--cfg", "docsrs" ]
|
||||
[build-dependencies]
|
||||
tauri-plugin = { workspace = true, features = [ "build" ] }
|
||||
schemars = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
schemars = { workspace = true }
|
||||
serde_repr = "0.1"
|
||||
tauri = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
|
||||
File diff suppressed because one or more lines are too long
+29
-3
@@ -2,12 +2,38 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
use std::{fs::create_dir_all, path::Path};
|
||||
use std::{
|
||||
fs::create_dir_all,
|
||||
path::{Path, PathBuf},
|
||||
};
|
||||
|
||||
#[path = "src/scope.rs"]
|
||||
#[allow(dead_code)]
|
||||
mod scope;
|
||||
|
||||
/// FS scope entry.
|
||||
#[derive(schemars::JsonSchema)]
|
||||
#[serde(untagged)]
|
||||
#[allow(unused)]
|
||||
enum FsScopeEntry {
|
||||
/// FS scope path.
|
||||
Value(PathBuf),
|
||||
Object {
|
||||
/// FS scope path.
|
||||
path: PathBuf,
|
||||
},
|
||||
}
|
||||
|
||||
// Ensure scope entry is kept up to date
|
||||
impl From<FsScopeEntry> for scope::EntryRaw {
|
||||
fn from(value: FsScopeEntry) -> Self {
|
||||
match value {
|
||||
FsScopeEntry::Value(path) => scope::EntryRaw::Value(path),
|
||||
FsScopeEntry::Object { path } => scope::EntryRaw::Object { path },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const BASE_DIR_VARS: &[&str] = &[
|
||||
"AUDIO",
|
||||
"CACHE",
|
||||
@@ -115,7 +141,7 @@ permissions = [
|
||||
|
||||
[[set]]
|
||||
identifier = "allow-{lower}-write-recursive"
|
||||
description = "This allows full recusrive write access to the complete `${upper}` folder, files and subdirectories."
|
||||
description = "This allows full recursive write access to the complete `${upper}` folder, files and subdirectories."
|
||||
permissions = [
|
||||
"write-all",
|
||||
"scope-{lower}-recursive"
|
||||
@@ -163,6 +189,6 @@ permissions = [
|
||||
|
||||
tauri_plugin::Builder::new(COMMANDS)
|
||||
.global_api_script_path("./api-iife.js")
|
||||
.global_scope_schema(schemars::schema_for!(scope::Entry))
|
||||
.global_scope_schema(schemars::schema_for!(FsScopeEntry))
|
||||
.build();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user