Compare commits

..

53 Commits

Author SHA1 Message Date
github-actions[bot] ecda84f8d5 Publish New Versions (v2) (#1279)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-05-11 07:13:52 -03:00
Fabian-Lars 021d23bef3 feat(deep-link): Add deep link support for desktop (#916) 2024-05-10 07:44:06 -03:00
Amr Bashir eb1679b997 fix(core/shell): speedup Command.execute & fix extra new lines (#1299)
* fix(core/shell): speedup `Command.execute` & fix extra new lines

The speed gains comes from running the Command in Rust fully and returning the result in one go instead of using events.

The extra new lines was a regression from https://github.com/tauri-apps/tauri/pull/6519
ref: https://github.com/tauri-apps/tauri/issues/7684#issuecomment-2100897383

* fmt

* dedup code
2024-05-09 18:15:03 +03:00
Amr Bashir 5c1b7917e4 fix(shell/command): retry sending events when it fails (#1298)
ref: https://github.com/tauri-apps/tauri/issues/7684
2024-05-09 10:38:56 -03:00
amrbashir 6af3216fab docs(global-shortcut): typo 2024-05-09 05:01:28 +03:00
Amr Bashir fa54f3cc9a fix(log): propagte some errors and avoid unwrapping (#1297) 2024-05-08 17:10:29 +03:00
renovate[bot] 56dde76889 chore(deps): update dependency eslint-plugin-n to v17.5.1 (#1292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 16:19:57 +02:00
renovate[bot] 89a7754bdf chore(deps): update dependency svelte to v4.2.16 (#1293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 16:17:18 +02:00
amrbashir 52a48dd80a docs(global-shortcut): add missing import 2024-05-07 17:01:54 +03:00
Amr Bashir 1829c2806a docs(global-shotcut): update docs in README and ts files (#1291) 2024-05-07 17:00:53 +03:00
renovate[bot] 723b9f7fa8 chore(deps): update dependency @tauri-apps/cli to v2.0.0-beta.16 (#1288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 08:47:23 +02:00
renovate[bot] 62b0d739bc chore(deps): update dependency eslint-plugin-n to v17.5.0 (#1290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 08:43:10 +02:00
renovate[bot] c776916f14 chore(deps): update dependency @iconify-json/ph to v1.1.13 (#1285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 09:17:26 +02:00
Amr Bashir d9de5b19d1 feat(positioner, window-state): impl WindowExt for WebviewWindow (#1283)
closes #1281
2024-05-03 13:16:40 +02:00
Graham Held b4efa58d5d feat(shell) raw-encoded pipe reader directly outputs buffer (no newline scan) (#1231)
* Shell raw-encoded pipe reader directly outputs buffer (no newline scan)

* Suggestions from code review and add .changes file

* fmt
2024-05-02 16:00:03 +03:00
renovate[bot] aea748ced7 chore(deps): update dependency vite to v5.2.11 (#1278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 13:04:46 +02:00
Fabian-Lars 8fecaba3f0 ci: Disable Cargo.lock patch updates for 0.x deps 2024-05-01 22:20:37 +02:00
Fabian-Lars f255343b54 ci: Disable Cargo.lock updates for patch/minor to make MSRV handling easier later. 2024-05-01 22:17:33 +02:00
Fabian-Lars e045223660 ci: Prevent renovate from changing stable patch/minor versions in cargo.toml 2024-05-01 22:04:42 +02:00
github-actions[bot] e94b089e51 publish new versions (#1247)
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
2024-05-01 14:35:49 +02:00
renovate[bot] 6ea07297f4 chore(deps): change rust crate maplit version to 1 (#1270)
* chore(deps): update rust crate maplit to 1.0.2

* Update Cargo.toml

* Update tauri-beta-17.md

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-05-01 14:27:30 +02:00
renovate[bot] bd1ed5903f chore(deps): update tauri monorepo (#1237)
* fix(deps): update tauri monorepo

* rm 1.5 cli

* macos-latest is now arm

* changefile and rebuild iife [skip ci]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: fabianlars <fabianlars@fabianlars.de>
2024-05-01 14:01:24 +02:00
Tony 1fa4d30eab feat(updater): support non zipped updater (#1174) 2024-04-30 17:48:04 +03:00
renovate[bot] f39586bcb4 chore(deps): update dependency rollup to v4.17.2 (#1264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 13:26:02 +02:00
renovate[bot] 5e20d7d339 chore(deps): update dependency eslint-plugin-n to v17.4.0 (#1265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 12:57:26 +02:00
renovate[bot] dbc1d9374d chore(deps): update typescript-eslint monorepo to v7.8.0 (#1263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 21:27:14 +02:00
Tony 44e47fe98b fix(window-state): restore window state for stubbed zerord state (#1259)
* Restore window state for default state

* Add change file
2024-04-29 19:33:33 +03:00
renovate[bot] 04ebd0282e chore(deps): update dependency rollup to v4.17.1 (#1261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 10:19:17 +02:00
renovate[bot] f853774154 chore(deps): update dependency rollup to v4.17.0 (#1260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-27 15:00:33 +02:00
Amr Bashir e9977eb2f8 chore(fs): distinct description for *meta and *meta-recursive permissions (#1250)
closes #1249
2024-04-25 00:59:29 +02:00
renovate[bot] 555cb07bfe chore(deps): update dependency eslint-plugin-n to v17.3.1 (#1248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-24 23:42:42 +02:00
Amr Bashir 1f16c64d67 refactor(clipboard): refactor clipboard function arguments for better clarity about the needed type (#1218) 2024-04-24 16:44:48 +02:00
Amr Bashir 9c7eb35967 feat(global-shortcut): support pressed/released states (#1244)
closes #1243
2024-04-24 15:42:01 +02:00
renovate[bot] a9132161df chore(deps): update dependency eslint-plugin-n to v17.3.0 (#1246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-24 14:07:44 +02:00
Tony edf9a4f29d fix(fs): missing debouncer rename cache (#1245)
* Fix missing debouncer rename cache

* Add change file

* Format
2024-04-24 10:50:12 +02:00
renovate[bot] 21387ac199 chore(deps): update dependency rollup to v4.16.4 (#1241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 17:16:17 +02:00
Fabian-Lars 45f02f1ba8 chore(deps): Update plist to 1.6.1 in lockfile (#1242)
fixes #989
2024-04-23 16:36:45 +02:00
Fabian-Lars f976ab7cd4 ci: Renovate PRs will now include the dependencies label 2024-04-23 15:51:20 +02:00
renovate[bot] cbd930166c chore(deps): update dependency rollup to v4.16.3 (#1239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 09:39:23 +02:00
renovate[bot] a305b05cff chore(deps): update dependency eslint-config-love to v47 (#1238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 09:06:59 +02:00
github-actions[bot] 3e5da59abc Publish New Versions (v2) (#1234)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-04-22 23:58:43 -03:00
Lucas Fernandes Nogueira 326df68839 fix(ios): decoding with default value is not supported (#1236) 2024-04-22 23:35:47 -03:00
renovate[bot] faa89850d0 chore(deps): replace dependency eslint-config-standard-with-typescript with eslint-config-love 43.1.0 (#1228)
* chore(deps): replace dependency eslint-config-standard-with-typescript with eslint-config-love 43.1.0

* actually apply the rules lol

* rebuild

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-04-23 00:40:51 +02:00
renovate[bot] 8aacc312cf chore(deps): update dependency rollup to v4.16.2 (#1233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-22 20:31:18 +02:00
renovate[bot] 95986f1c4d chore(deps): update typescript-eslint monorepo to v7.7.1 (#1235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-22 20:22:58 +02:00
Fabian-Lars b115fd22e0 fix(fs): Prevent deadlock when scope listeners are registered. (#1221)
* fix(fs): Prevent deadlock when scope listeners are registered.

* block
2024-04-22 20:09:12 +02:00
renovate[bot] cdd3aafdc6 chore(deps): update dependency rollup to v4.16.1 (#1230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-21 20:57:38 +02:00
renovate[bot] 961a13860e chore(deps): update dependency rollup to v4.16.0 (#1227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-21 16:48:59 +02:00
renovate[bot] 01e534a1c9 chore(deps): update dependency vite to v5.2.10 (#1225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 19:07:12 +02:00
renovate[bot] 9f70233ebb chore(deps): update dependency rollup to v4.15.0 (#1224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-20 19:03:09 +02:00
renovate[bot] 78a4097d09 fix(deps): update rust crate global-hotkey to 0.5.1 (#1211)
* fix(deps): update rust crate global-hotkey to 0.5.1

* fix comp

* Update Cargo.toml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-04-18 17:05:15 +02:00
renovate[bot] 35373956ea fix(deps): update rust crate cocoa to 0.25 (#1208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 15:58:01 +02:00
renovate[bot] bf285d471d chore(deps): update unocss monorepo to v0.59.4 (#1220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 15:40:38 +02:00
238 changed files with 3245 additions and 2114 deletions
+11
View File
@@ -0,0 +1,11 @@
---
"clipboard-manager": "patch"
---
Refactored the clipboard Rust APIs for more clarity and consistency:
- Changed `Clipboard::write_text` to take a string type instead of an enum.
- Changed `Clipboard::read_text` to return a string type instead of an enum.
- Changed `Clipboard::write_html` to take 2 string arguments instead of an enum.
- Changed `Clipboard::write_image` to take a reference to a `tauri::Image` instead of an enum.
- Removed `ClipKind` and `ClipboardContents` enums.
+6
View File
@@ -0,0 +1,6 @@
---
"deep-link": patch
"deep-link-js": patch
---
Added desktop support.
+6
View File
@@ -0,0 +1,6 @@
---
"shell": patch
---
When the "raw" encoding option is specified for a shell process, all bytes from the child's output streams are passed to the data handlers.
This makes it possible to read output from programs that write unencoded byte streams to stdout (like ffmpeg)
+7
View File
@@ -0,0 +1,7 @@
---
"notification": patch
"barcode-scanner": patch
"dialog": patch
---
Fixes command argument parsing on iOS.
+5
View File
@@ -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.
+11
View File
@@ -0,0 +1,11 @@
---
"global-shortcut": "patch"
"global-shortcut-js": "patch"
---
Refactored APIs to introduce new pressed and released events:
- Added `ShortcutEvent` and `ShortcutState` types in Rust.
- Changed the handler function passed to `GlobalShortcut::on_shortcut`, `GlobalShortcut::on_all_shortcuts` and `Builder::with_handler` to take a 3rd argument of type `ShortcutEvent`.
- Added `ShortcutEvent` interface in JS.
- Changed `ShortcutHandler` type alias (which affects the JS `register` and `registerAll` APIs) to take `ShortcutEvent` instead of a string.
+6
View File
@@ -0,0 +1,6 @@
---
"positioner": "patch"
"window-state": "patch"
---
Implement `WindowExt` for `WebviewWindow`.
+14
View File
@@ -5,18 +5,23 @@
".changes/clipboard-expose-struct.md",
".changes/clipboard-html.md",
".changes/clipboard-manager-image.md",
".changes/clipboard-refactor.md",
".changes/clipboard-text-command-rename.md",
".changes/deep-link-desktop.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/enhance-shell-raw-out.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",
@@ -28,25 +33,34 @@
".changes/fix-updater-powershell-flashing.md",
".changes/fix-zbus-import.md",
".changes/global-api-script-refactor.md",
".changes/global-hotkey-event.md",
".changes/global-shortcut-refactor.md",
".changes/http-unsafe-headers.md",
".changes/http-user-agent.md",
".changes/impl-ext-for-webview-windows.md",
".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/restore-default-window-state.md",
".changes/scoped-resources-table.md",
".changes/shell-command-execute-extra-new-lines.md",
".changes/shell-command-execute-speed.md",
".changes/shell-command-lost-events.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-17.md",
".changes/tauri-beta-4.md",
".changes/tauri-beta-8.md",
".changes/tauri-beta-9.md",
".changes/updater-non-zip.md",
".changes/upload-returnval.md",
".changes/watcher-debouncer-rename.md",
".changes/window-state-custom-filename.md",
".changes/window-state-default-filename.md",
".changes/window-state-js-binding.md",
+5
View File
@@ -0,0 +1,5 @@
---
"window-state": patch
---
Fix `restore_window` doesn't work with `skip_initial_state` when no previous cache was found
@@ -0,0 +1,5 @@
---
"shell-js": "patch"
---
Fix `Command.execute` API including extra new lines.
+6
View File
@@ -0,0 +1,6 @@
---
"shell": "patch"
"shell-js": "patch"
---
Improve the speed of the JS `Command.execute` API
+5
View File
@@ -0,0 +1,5 @@
---
"shell": "patch"
---
Fix the JS `Command` API losing events for `stdout`.
+57
View File
@@ -0,0 +1,57 @@
---
"authenticator": patch
"autostart": patch
"barcode-scanner": patch
"biometric": patch
"cli": patch
"clipboard-manager": patch
"deep-link": patch
"dialog": patch
"fs": patch
"global-shortcut": patch
"http": patch
"localhost": patch
"log-plugin": patch
"nfc": patch
"notification": patch
"os": patch
"persisted-scope": patch
"positioner": patch
"process": patch
"shell": patch
"single-instance": patch
"sql": patch
"store": patch
"stronghold": patch
"updater": patch
"upload": patch
"websocket": patch
"window-state": patch
"authenticator-js": patch
"autostart-js": patch
"barcode-scanner-js": patch
"biometric-js": patch
"cli-js": patch
"clipboard-manager-js": patch
"deep-link-js": patch
"dialog-js": patch
"fs-js": patch
"global-shortcut-js": patch
"http-js": patch
"log-js": patch
"nfc-js": patch
"notification-js": patch
"os-js": patch
"positioner-js": patch
"process-js": patch
"shell-js": patch
"sql-js": patch
"store-js": patch
"stronghold-js": patch
"updater-js": patch
"upload-js": patch
"websocket-js": patch
"window-state-js": patch
---
Update to tauri beta.17.
+5
View File
@@ -0,0 +1,5 @@
---
"updater": "patch"
---
Add support for updating using non-zipped files on Windows and Linux.
+5
View File
@@ -0,0 +1,5 @@
---
"fs": patch
---
Fixes `RenameMode::From` and `RenameMode::To` never getting converted to `RenameMode::Both` when using `watch` with a debounce on Windows
+3 -1
View File
@@ -5,4 +5,6 @@ build/
dist-js
api-iife.js
init-iife.js
init.js
init.js
rollup.config.js
examples/
+3 -1
View File
@@ -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": {}
+9 -6
View File
@@ -56,6 +56,9 @@ jobs:
tauri-plugin-clipboard-manager:
- .github/workflows/test-rust.yml
- plugins/clipboard-manager/**
tauri-plugin-deep-link:
- .github/workflows/test-rust.yml
- plugins/deep-link/**
tauri-plugin-dialog:
- .github/workflows/test-rust.yml
- plugins/dialog/**
@@ -131,31 +134,31 @@ jobs:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
runner: 'cargo',
runner: "cargo",
command: "test",
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
runner: 'cargo',
runner: "cargo",
command: "test",
}
- {
target: x86_64-apple-darwin,
target: aarch64-apple-darwin,
os: macos-latest,
runner: 'cargo',
runner: "cargo",
command: "test",
}
- {
target: aarch64-apple-ios,
os: macos-latest,
runner: 'cargo',
runner: "cargo",
command: "build",
}
- {
target: aarch64-linux-android,
os: ubuntu-latest,
runner: 'cross',
runner: "cross",
command: "build",
}
Generated
+275 -226
View File
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -10,9 +10,10 @@ resolver = "2"
[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
log = "0.4"
tauri = "2.0.0-beta.15"
tauri-build = "2.0.0-beta.12"
tauri-plugin = "2.0.0-beta.12"
tauri = "2.0.0-beta.17"
tauri-build = "2.0.0-beta.13"
tauri-plugin = "2.0.0-beta.13"
tauri-utils = "2.0.0-beta.13"
serde_json = "1"
thiserror = "1"
url = "2"
+26
View File
@@ -1,5 +1,31 @@
# Changelog
## \[2.0.0-beta.6]
### Dependencies
- Upgraded to `shell-js@2.0.0-beta.4`
## \[2.0.0-beta.5]
### Dependencies
- Upgraded to `global-shortcut-js@2.0.0-beta.3`
- Upgraded to `barcode-scanner-js@2.0.0-beta.3`
- Upgraded to `biometric-js@2.0.0-beta.3`
- Upgraded to `cli-js@2.0.0-beta.3`
- Upgraded to `clipboard-manager-js@2.1.0-beta.1`
- Upgraded to `dialog-js@2.0.0-beta.3`
- Upgraded to `fs-js@2.0.0-beta.3`
- Upgraded to `http-js@2.0.0-beta.3`
- Upgraded to `log-js@2.0.0-beta.4`
- Upgraded to `nfc-js@2.0.0-beta.3`
- Upgraded to `notification-js@2.0.0-beta.3`
- Upgraded to `os-js@2.0.0-beta.3`
- Upgraded to `process-js@2.0.0-beta.3`
- Upgraded to `shell-js@2.0.0-beta.3`
- Upgraded to `updater-js@2.0.0-beta.3`
## \[2.0.0-beta.4]
### Dependencies
+17 -17
View File
@@ -1,7 +1,7 @@
{
"name": "svelte-app",
"private": true,
"version": "2.0.0-beta.4",
"version": "2.0.0-beta.6",
"type": "module",
"scripts": {
"dev": "vite --clearScreen false",
@@ -9,28 +9,28 @@
"serve": "vite preview"
},
"dependencies": {
"@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",
"@tauri-apps/plugin-clipboard-manager": "2.1.0-beta.0",
"@tauri-apps/plugin-dialog": "2.0.0-beta.2",
"@tauri-apps/plugin-fs": "2.0.0-beta.2",
"@tauri-apps/plugin-global-shortcut": "2.0.0-beta.2",
"@tauri-apps/plugin-http": "2.0.0-beta.2",
"@tauri-apps/plugin-nfc": "2.0.0-beta.2",
"@tauri-apps/plugin-notification": "2.0.0-beta.2",
"@tauri-apps/plugin-os": "2.0.0-beta.2",
"@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",
"@tauri-apps/api": "2.0.0-beta.11",
"@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.3",
"@tauri-apps/plugin-biometric": "2.0.0-beta.3",
"@tauri-apps/plugin-cli": "2.0.0-beta.3",
"@tauri-apps/plugin-clipboard-manager": "2.1.0-beta.1",
"@tauri-apps/plugin-dialog": "2.0.0-beta.3",
"@tauri-apps/plugin-fs": "2.0.0-beta.3",
"@tauri-apps/plugin-global-shortcut": "2.0.0-beta.3",
"@tauri-apps/plugin-http": "2.0.0-beta.3",
"@tauri-apps/plugin-nfc": "2.0.0-beta.3",
"@tauri-apps/plugin-notification": "2.0.0-beta.3",
"@tauri-apps/plugin-os": "2.0.0-beta.3",
"@tauri-apps/plugin-process": "2.0.0-beta.3",
"@tauri-apps/plugin-shell": "2.0.0-beta.4",
"@tauri-apps/plugin-updater": "2.0.0-beta.3",
"@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.13",
"@tauri-apps/cli": "2.0.0-beta.16",
"@unocss/extractor-svelte": "^0.59.0",
"internal-ip": "^8.0.0",
"svelte": "^4.2.8",
+36
View File
@@ -1,5 +1,41 @@
# Changelog
## \[2.0.0-beta.8]
### Dependencies
- Upgraded to `shell@2.0.0-beta.5`
## \[2.0.0-beta.7]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.2`
- Upgraded to `global-shortcut@2.0.0-beta.4`
- Upgraded to `barcode-scanner@2.0.0-beta.5`
- Upgraded to `biometric@2.0.0-beta.4`
- Upgraded to `cli@2.0.0-beta.4`
- Upgraded to `dialog@2.0.0-beta.7`
- Upgraded to `fs@2.0.0-beta.7`
- Upgraded to `http@2.0.0-beta.7`
- Upgraded to `log-plugin@2.0.0-beta.4`
- Upgraded to `nfc@2.0.0-beta.4`
- Upgraded to `notification@2.0.0-beta.5`
- Upgraded to `os@2.0.0-beta.4`
- Upgraded to `process@2.0.0-beta.4`
- Upgraded to `shell@2.0.0-beta.4`
- Upgraded to `updater@2.0.0-beta.5`
## \[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
+16 -16
View File
@@ -1,7 +1,7 @@
[package]
name = "api"
publish = false
version = "2.0.0-beta.5"
version = "2.0.0-beta.8"
description = "An example Tauri Application showcasing the api"
edition = "2021"
rust-version = { workspace = true }
@@ -19,15 +19,15 @@ serde_json = { workspace = true }
serde = { workspace = true }
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.5", 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.5" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.5" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.3", 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" }
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.4" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.7", features = [ "watch" ] }
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.1.0-beta.2" }
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.7" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.7" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.5", features = [ "windows7-compat" ] }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.4" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.4" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.5" }
[dependencies.tauri]
workspace = true
@@ -41,14 +41,14 @@ 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.4" }
tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-beta.4" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.4" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.5" }
[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-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.3" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.3" }
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.5" }
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.4" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.4" }
[target."cfg(target_os = \"windows\")".dependencies]
window-shadows = "0.2"
@@ -149,14 +149,14 @@
]
},
{
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.",
"description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-app-meta"
]
},
{
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.",
"description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-app-meta-recursive"
@@ -191,14 +191,14 @@
]
},
{
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appcache-meta"
]
},
{
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appcache-meta-recursive"
@@ -233,14 +233,14 @@
]
},
{
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appconfig-meta"
]
},
{
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appconfig-meta-recursive"
@@ -275,14 +275,14 @@
]
},
{
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appdata-meta"
]
},
{
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appdata-meta-recursive"
@@ -317,14 +317,14 @@
]
},
{
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applocaldata-meta"
]
},
{
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applocaldata-meta-recursive"
@@ -359,14 +359,14 @@
]
},
{
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applog-meta"
]
},
{
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applog-meta-recursive"
@@ -401,14 +401,14 @@
]
},
{
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-audio-meta"
]
},
{
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-audio-meta-recursive"
@@ -443,14 +443,14 @@
]
},
{
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-cache-meta"
]
},
{
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-cache-meta-recursive"
@@ -485,14 +485,14 @@
]
},
{
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-config-meta"
]
},
{
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-config-meta-recursive"
@@ -527,14 +527,14 @@
]
},
{
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.",
"description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-data-meta"
]
},
{
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.",
"description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-data-meta-recursive"
@@ -569,14 +569,14 @@
]
},
{
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-desktop-meta"
]
},
{
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-desktop-meta-recursive"
@@ -611,14 +611,14 @@
]
},
{
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-document-meta"
]
},
{
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-document-meta-recursive"
@@ -653,14 +653,14 @@
]
},
{
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-download-meta"
]
},
{
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-download-meta-recursive"
@@ -695,14 +695,14 @@
]
},
{
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.",
"description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-exe-meta"
]
},
{
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.",
"description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-exe-meta-recursive"
@@ -737,14 +737,14 @@
]
},
{
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.",
"description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-font-meta"
]
},
{
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.",
"description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-font-meta-recursive"
@@ -779,14 +779,14 @@
]
},
{
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.",
"description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-home-meta"
]
},
{
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.",
"description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-home-meta-recursive"
@@ -821,14 +821,14 @@
]
},
{
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-localdata-meta"
]
},
{
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-localdata-meta-recursive"
@@ -863,14 +863,14 @@
]
},
{
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.",
"description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-log-meta"
]
},
{
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.",
"description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-log-meta-recursive"
@@ -905,14 +905,14 @@
]
},
{
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-picture-meta"
]
},
{
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-picture-meta-recursive"
@@ -947,14 +947,14 @@
]
},
{
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-public-meta"
]
},
{
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-public-meta-recursive"
@@ -989,14 +989,14 @@
]
},
{
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-resource-meta"
]
},
{
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-resource-meta-recursive"
@@ -1031,14 +1031,14 @@
]
},
{
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-runtime-meta"
]
},
{
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-runtime-meta-recursive"
@@ -1073,14 +1073,14 @@
]
},
{
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-temp-meta"
]
},
{
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-temp-meta-recursive"
@@ -1115,14 +1115,14 @@
]
},
{
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-template-meta"
]
},
{
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-template-meta-recursive"
@@ -1157,14 +1157,14 @@
]
},
{
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-video-meta"
]
},
{
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-video-meta-recursive"
@@ -2339,6 +2339,13 @@
"shell:allow-open"
]
},
{
"description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.",
"type": "string",
"enum": [
"shell:allow-spawn"
]
},
{
"description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.",
"type": "string",
@@ -2367,6 +2374,13 @@
"shell:deny-open"
]
},
{
"description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.",
"type": "string",
"enum": [
"shell:deny-spawn"
]
},
{
"description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.",
"type": "string",
@@ -2782,14 +2796,14 @@
]
},
{
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.",
"description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-app-meta"
]
},
{
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.",
"description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-app-meta-recursive"
@@ -2824,14 +2838,14 @@
]
},
{
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appcache-meta"
]
},
{
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appcache-meta-recursive"
@@ -2866,14 +2880,14 @@
]
},
{
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appconfig-meta"
]
},
{
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appconfig-meta-recursive"
@@ -2908,14 +2922,14 @@
]
},
{
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appdata-meta"
]
},
{
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-appdata-meta-recursive"
@@ -2950,14 +2964,14 @@
]
},
{
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applocaldata-meta"
]
},
{
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applocaldata-meta-recursive"
@@ -2992,14 +3006,14 @@
]
},
{
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applog-meta"
]
},
{
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-applog-meta-recursive"
@@ -3034,14 +3048,14 @@
]
},
{
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-audio-meta"
]
},
{
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-audio-meta-recursive"
@@ -3076,14 +3090,14 @@
]
},
{
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-cache-meta"
]
},
{
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-cache-meta-recursive"
@@ -3118,14 +3132,14 @@
]
},
{
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-config-meta"
]
},
{
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-config-meta-recursive"
@@ -3160,14 +3174,14 @@
]
},
{
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.",
"description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-data-meta"
]
},
{
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.",
"description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-data-meta-recursive"
@@ -3202,14 +3216,14 @@
]
},
{
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-desktop-meta"
]
},
{
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-desktop-meta-recursive"
@@ -3244,14 +3258,14 @@
]
},
{
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-document-meta"
]
},
{
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-document-meta-recursive"
@@ -3286,14 +3300,14 @@
]
},
{
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-download-meta"
]
},
{
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-download-meta-recursive"
@@ -3328,14 +3342,14 @@
]
},
{
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.",
"description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-exe-meta"
]
},
{
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.",
"description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-exe-meta-recursive"
@@ -3370,14 +3384,14 @@
]
},
{
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.",
"description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-font-meta"
]
},
{
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.",
"description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-font-meta-recursive"
@@ -3412,14 +3426,14 @@
]
},
{
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.",
"description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-home-meta"
]
},
{
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.",
"description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-home-meta-recursive"
@@ -3454,14 +3468,14 @@
]
},
{
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-localdata-meta"
]
},
{
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-localdata-meta-recursive"
@@ -3496,14 +3510,14 @@
]
},
{
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.",
"description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-log-meta"
]
},
{
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.",
"description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-log-meta-recursive"
@@ -3538,14 +3552,14 @@
]
},
{
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-picture-meta"
]
},
{
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-picture-meta-recursive"
@@ -3580,14 +3594,14 @@
]
},
{
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-public-meta"
]
},
{
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-public-meta-recursive"
@@ -3622,14 +3636,14 @@
]
},
{
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-resource-meta"
]
},
{
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-resource-meta-recursive"
@@ -3664,14 +3678,14 @@
]
},
{
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-runtime-meta"
]
},
{
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-runtime-meta-recursive"
@@ -3706,14 +3720,14 @@
]
},
{
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-temp-meta"
]
},
{
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-temp-meta-recursive"
@@ -3748,14 +3762,14 @@
]
},
{
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-template-meta"
]
},
{
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-template-meta-recursive"
@@ -3790,14 +3804,14 @@
]
},
{
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-video-meta"
]
},
{
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string",
"enum": [
"fs:allow-video-meta-recursive"
@@ -5689,6 +5703,13 @@
"shell:allow-open"
]
},
{
"description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.",
"type": "string",
"enum": [
"shell:allow-spawn"
]
},
{
"description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.",
"type": "string",
@@ -5717,6 +5738,13 @@
"shell:deny-open"
]
},
{
"description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.",
"type": "string",
"enum": [
"shell:deny-spawn"
]
},
{
"description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.",
"type": "string",
@@ -6137,6 +6165,13 @@
"window:allow-current-monitor"
]
},
{
"description": "window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.",
"type": "string",
"enum": [
"window:allow-cursor-position"
]
},
{
"description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.",
"type": "string",
@@ -6487,6 +6522,13 @@
"window:allow-start-dragging"
]
},
{
"description": "window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.",
"type": "string",
"enum": [
"window:allow-start-resize-dragging"
]
},
{
"description": "window:allow-theme -> Enables the theme command without any pre-configured scope.",
"type": "string",
@@ -6557,6 +6599,13 @@
"window:deny-current-monitor"
]
},
{
"description": "window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.",
"type": "string",
"enum": [
"window:deny-cursor-position"
]
},
{
"description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.",
"type": "string",
@@ -6907,6 +6956,13 @@
"window:deny-start-dragging"
]
},
{
"description": "window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.",
"type": "string",
"enum": [
"window:deny-start-resize-dragging"
]
},
{
"description": "window:deny-theme -> Denies the theme command without any pre-configured scope.",
"type": "string",
+2 -2
View File
@@ -12,8 +12,8 @@
function register() {
const shortcut_ = shortcut;
registerShortcut(shortcut_, () => {
onMessage(`Shortcut ${shortcut_} triggered`);
registerShortcut(shortcut_, (e) => {
onMessage(`Shortcut ${shortcut_} triggered ${e.state}`);
})
.then(() => {
shortcuts.update((shortcuts_) => [...shortcuts_, shortcut_]);
+2 -2
View File
@@ -12,8 +12,8 @@
isChecking = true;
try {
const update = await check();
onMessage(`Should update: ${update.response.available}`);
onMessage(update.response);
onMessage(`Should update: ${update.available}`);
onMessage(update);
newUpdate = update;
} catch (e) {
+5 -5
View File
@@ -13,18 +13,18 @@
"@rollup/plugin-node-resolve": "15.2.3",
"@rollup/plugin-terser": "0.4.4",
"@rollup/plugin-typescript": "11.1.6",
"@typescript-eslint/eslint-plugin": "7.7.0",
"@typescript-eslint/parser": "7.7.0",
"@typescript-eslint/eslint-plugin": "7.8.0",
"@typescript-eslint/parser": "7.8.0",
"covector": "^0.10.2",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-config-standard-with-typescript": "43.0.1",
"eslint-config-love": "47.0.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-n": "17.2.1",
"eslint-plugin-n": "17.5.1",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-security": "3.0.0",
"prettier": "3.2.5",
"rollup": "4.14.3",
"rollup": "4.17.2",
"tslib": "2.6.2",
"typescript": "5.4.5"
},
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-authenticator"
version = "2.0.0-beta.4"
version = "2.0.0-beta.5"
description = "Use hardware security-keys in your Tauri App."
authors = { workspace = true }
license = { workspace = true }
+1 -1
View File
@@ -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__})}
+1 -1
View File
@@ -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> {
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-authenticator",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"description": "Use hardware security-keys in your Tauri App.",
"license": "MIT or APACHE-2.0",
"authors": [
@@ -24,6 +24,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
+4 -4
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-autostart"
version = "2.0.0-beta.4"
version = "2.0.0-beta.5"
description = "Automatically launch your application at startup."
authors = { workspace = true }
license = { workspace = true }
@@ -10,11 +10,11 @@ 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 }
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-autostart",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"license": "MIT or APACHE-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
@@ -23,6 +23,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+8
View File
@@ -2,6 +2,14 @@
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
## \[2.0.0-beta.2]
+5 -5
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-barcode-scanner"
version = "2.0.0-beta.3"
version = "2.0.0-beta.5"
description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS"
edition = { workspace = true }
authors = { workspace = true }
@@ -10,12 +10,12 @@ repository = { workspace = true }
links = "tauri-plugin-barcode-scanner"
[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]
tauri-plugin = { workspace = true, features = ["build"] }
tauri-plugin = { workspace = true, features = [ "build" ] }
[dependencies]
serde = { workspace = true }
+1 -1
View File
@@ -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__})}
+2 -2
View File
@@ -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)
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-barcode-scanner",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS",
"license": "MIT or APACHE-2.0",
"authors": [
@@ -24,6 +24,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+4
View File
@@ -2,6 +2,10 @@
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
## \[2.0.0-beta.2]
+4 -4
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-biometric"
version = "2.0.0-beta.3"
version = "2.0.0-beta.4"
description = "Prompt the user for biometric authentication on Android and iOS."
edition = { workspace = true }
authors = { workspace = true }
@@ -9,11 +9,11 @@ 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
View File
@@ -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__})}
+2 -2
View File
@@ -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,
});
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-biometric",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"license": "MIT or APACHE-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
@@ -24,6 +24,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+4
View File
@@ -2,6 +2,10 @@
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
## \[2.0.0-beta.2]
+5 -5
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-cli"
version = "2.0.0-beta.3"
version = "2.0.0-beta.4"
description = "Parse arguments from your Tauri application's command line interface."
edition = { workspace = true }
authors = { workspace = true }
@@ -10,11 +10,11 @@ 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 }
@@ -22,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" ] }
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-cli",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"license": "MIT or APACHE-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
@@ -23,6 +23,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+12
View File
@@ -2,6 +2,10 @@
## \[2.1.0-beta.1]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
@@ -62,5 +66,13 @@
## \[2.0.0-alpha.0]
- [`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!
hub.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]
- [`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!
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-clipboard-manager"
version = "2.1.0-beta.1"
version = "2.1.0-beta.2"
description = "Read and write to the system clipboard."
edition = { workspace = true }
authors = { workspace = true }
+1 -1
View File
@@ -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 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("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");r.set(e,t)}(this,r,e)}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")},e.writeHtml=async function(e,r){await t("plugin:clipboard-manager|write_html",{html:e,altHtml:r})},e.writeImage=async function(e){await t("plugin:clipboard-manager|write_image",{image:i(e)})},e.writeText=async function(e,r){await t("plugin:clipboard-manager|write_text",{label:r?.label,text:e})},e}({});Object.defineProperty(window.__TAURI__,"clipboardManager",{value:__TAURI_PLUGIN_CLIPBOARDMANAGER__})}
+27 -43
View File
@@ -11,8 +11,6 @@
import { invoke } from "@tauri-apps/api/core";
import { Image, transformImage } from "@tauri-apps/api/image";
type ClipResponse = Record<"plainText", { text: string }>;
/**
* Writes plain text to the clipboard.
* @example
@@ -30,13 +28,9 @@ async function writeText(
text: string,
opts?: { label?: string },
): Promise<void> {
return invoke("plugin:clipboard-manager|write_text", {
data: {
plainText: {
label: opts?.label,
text,
},
},
await invoke("plugin:clipboard-manager|write_text", {
label: opts?.label,
text,
});
}
@@ -50,26 +44,7 @@ async function writeText(
* @since 2.0.0
*/
async function readText(): Promise<string> {
const kind: ClipResponse = await invoke("plugin:clipboard-manager|read_text");
return kind.plainText.text;
}
/**
* Gets the clipboard content as Uint8Array image.
* @example
* ```typescript
* import { readImage } from '@tauri-apps/plugin-clipboard-manager';
*
* const clipboardImage = await readImage();
* const blob = new Blob([clipboardImage.bytes], { type: 'image' })
* const url = URL.createObjectURL(blob)
* ```
* @since 2.0.0
*/
async function readImage(): Promise<Image> {
return await invoke<number>("plugin:clipboard-manager|read_image").then(
(rid) => new Image(rid),
);
return await invoke("plugin:clipboard-manager|read_text");
}
/**
@@ -93,15 +68,29 @@ async function readImage(): Promise<Image> {
async function writeImage(
image: string | Image | Uint8Array | ArrayBuffer | number[],
): Promise<void> {
return invoke("plugin:clipboard-manager|write_image", {
data: {
image: {
image: transformImage(image),
},
},
await invoke("plugin:clipboard-manager|write_image", {
image: transformImage(image),
});
}
/**
* Gets the clipboard content as Uint8Array image.
* @example
* ```typescript
* import { readImage } from '@tauri-apps/plugin-clipboard-manager';
*
* const clipboardImage = await readImage();
* const blob = new Blob([clipboardImage.bytes], { type: 'image' })
* const url = URL.createObjectURL(blob)
* ```
* @since 2.0.0
*/
async function readImage(): Promise<Image> {
return await invoke<number>("plugin:clipboard-manager|read_image").then(
(rid) => new Image(rid),
);
}
/**
* * Writes HTML or fallbacks to write provided plain text to the clipboard.
* @example
@@ -117,13 +106,9 @@ async function writeImage(
* @since 2.0.0
*/
async function writeHtml(html: string, altHtml?: string): Promise<void> {
return invoke("plugin:clipboard-manager|write_html", {
data: {
html: {
html,
altHtml,
},
},
await invoke("plugin:clipboard-manager|write_html", {
html,
altHtml,
});
}
@@ -138,7 +123,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 };
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-clipboard-manager",
"version": "2.1.0-beta.0",
"version": "2.1.0-beta.1",
"license": "MIT or APACHE-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
@@ -23,6 +23,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+30 -12
View File
@@ -2,37 +2,54 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
use tauri::{command, AppHandle, Manager, ResourceId, Runtime, State, Webview};
use tauri::{command, image::JsImage, AppHandle, Manager, ResourceId, Runtime, State, Webview};
use crate::{ClipKind, Clipboard, ClipboardContents, Result};
use crate::{Clipboard, Result};
#[command]
#[cfg(desktop)]
pub(crate) async fn write_text<R: Runtime>(
_app: AppHandle<R>,
clipboard: State<'_, Clipboard<R>>,
data: ClipKind,
text: &str,
#[allow(unused)] label: Option<String>,
) -> Result<()> {
clipboard.write_text(data)
clipboard.write_text(text)
}
#[command]
pub(crate) async fn write_image<R: Runtime>(
webview: Webview<R>,
#[cfg(not(desktop))]
pub(crate) async fn write_text<R: Runtime>(
_app: AppHandle<R>,
clipboard: State<'_, Clipboard<R>>,
data: ClipKind,
text: &str,
#[allow(unused)] label: Option<&str>,
) -> Result<()> {
let resources_table = webview.resources_table();
clipboard.write_image_inner(data, &resources_table)
match label {
Some(label) => clipboard.write_text_with_label(text, label),
None => clipboard.write_text(text),
}
}
#[command]
pub(crate) async fn read_text<R: Runtime>(
_app: AppHandle<R>,
clipboard: State<'_, Clipboard<R>>,
) -> Result<ClipboardContents> {
) -> Result<String> {
clipboard.read_text()
}
#[command]
pub(crate) async fn write_image<R: Runtime>(
webview: Webview<R>,
clipboard: State<'_, Clipboard<R>>,
image: JsImage,
) -> Result<()> {
let resources_table = webview.resources_table();
let image = image.into_img(&resources_table)?;
clipboard.write_image(&image)
}
#[command]
pub(crate) async fn read_image<R: Runtime>(
webview: Webview<R>,
@@ -48,9 +65,10 @@ pub(crate) async fn read_image<R: Runtime>(
pub(crate) async fn write_html<R: Runtime>(
_app: AppHandle<R>,
clipboard: State<'_, Clipboard<R>>,
data: ClipKind,
html: &str,
alt_text: Option<&str>,
) -> Result<()> {
clipboard.write_html(data)
clipboard.write_html(html, alt_text)
}
#[command]
+31 -50
View File
@@ -5,9 +5,7 @@
use arboard::ImageData;
use image::ImageEncoder;
use serde::de::DeserializeOwned;
use tauri::{image::Image, plugin::PluginApi, AppHandle, Manager, ResourceTable, Runtime};
use crate::models::*;
use tauri::{image::Image, plugin::PluginApi, AppHandle, Runtime};
use std::{borrow::Cow, sync::Mutex};
@@ -29,67 +27,50 @@ pub struct Clipboard<R: Runtime> {
}
impl<R: Runtime> Clipboard<R> {
pub fn write_text(&self, kind: ClipKind) -> crate::Result<()> {
match kind {
ClipKind::PlainText { text, .. } => match &self.clipboard {
Ok(clipboard) => clipboard.lock().unwrap().set_text(text).map_err(Into::into),
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
},
_ => Err(crate::Error::Clipboard("Invalid clip kind".to_string())),
pub fn write_text<'a, T: Into<Cow<'a, str>>>(&self, text: T) -> crate::Result<()> {
match &self.clipboard {
Ok(clipboard) => clipboard.lock().unwrap().set_text(text).map_err(Into::into),
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
}
}
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(resources_table)?;
clipboard
.lock()
.unwrap()
.set_image(ImageData {
bytes: Cow::Borrowed(image.rgba()),
width: image.width() as usize,
height: image.height() as usize,
})
.map_err(Into::into)
}
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
},
_ => Err(crate::Error::Clipboard("Invalid clip kind".to_string())),
pub fn write_image(&self, image: &Image<'_>) -> crate::Result<()> {
match &self.clipboard {
Ok(clipboard) => clipboard
.lock()
.unwrap()
.set_image(ImageData {
bytes: Cow::Borrowed(image.rgba()),
width: image.width() as usize,
height: image.height() as usize,
})
.map_err(Into::into),
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
}
}
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> {
pub fn read_text(&self) -> crate::Result<String> {
match &self.clipboard {
Ok(clipboard) => {
let text = clipboard.lock().unwrap().get_text()?;
Ok(ClipboardContents::PlainText { text })
Ok(text)
}
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
}
}
pub fn write_html(&self, kind: ClipKind) -> crate::Result<()> {
match kind {
ClipKind::Html { html, alt_html, .. } => match &self.clipboard {
Ok(clipboard) => clipboard
.lock()
.unwrap()
.set_html(html, alt_html)
.map_err(Into::into),
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
},
_ => Err(crate::Error::Clipboard("Invalid clip kind!".to_string())),
pub fn write_html<'a, T: Into<Cow<'a, str>>>(
&self,
html: T,
alt_text: Option<T>,
) -> crate::Result<()> {
match &self.clipboard {
Ok(clipboard) => clipboard
.lock()
.unwrap()
.set_html(html, alt_text)
.map_err(Into::into),
Err(e) => Err(crate::Error::Clipboard(e.to_string())),
}
}
-1
View File
@@ -13,7 +13,6 @@ pub enum Error {
PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError),
#[error("{0}")]
Clipboard(String),
#[cfg(desktop)]
#[error(transparent)]
Tauri(#[from] tauri::Error),
#[cfg(desktop)]
-3
View File
@@ -16,8 +16,6 @@ use tauri::{
Manager, Runtime,
};
pub use models::*;
#[cfg(desktop)]
mod desktop;
#[cfg(mobile)]
@@ -25,7 +23,6 @@ mod mobile;
mod commands;
mod error;
mod models;
pub use error::{Error, Result};
+48 -15
View File
@@ -3,13 +3,14 @@
// SPDX-License-Identifier: MIT
use serde::de::DeserializeOwned;
use serde::{Deserialize, Serialize};
use tauri::{
image::Image,
plugin::{PluginApi, PluginHandle},
AppHandle, Runtime,
};
use crate::models::*;
use std::borrow::Cow;
#[cfg(target_os = "android")]
const PLUGIN_IDENTIFIER: &str = "app.tauri.clipboard";
@@ -33,28 +34,44 @@ pub fn init<R: Runtime, C: DeserializeOwned>(
pub struct Clipboard<R: Runtime>(PluginHandle<R>);
impl<R: Runtime> Clipboard<R> {
pub fn write_text(&self, kind: ClipKind) -> crate::Result<()> {
self.0.run_mobile_plugin("write", kind).map_err(Into::into)
pub fn write_text<'a, T: Into<Cow<'a, str>>>(&self, text: T) -> crate::Result<()> {
let text = text.into().to_string();
self.0
.run_mobile_plugin("write", ClipKind::PlainText { text, label: None })
.map_err(Into::into)
}
pub(crate) fn write_image_inner(
pub fn write_text_with_label<'a, T: Into<Cow<'a, str>>>(
&self,
kind: ClipKind,
resources_table: &tauri::ResourceTable,
text: T,
label: T,
) -> crate::Result<()> {
let text = text.into().to_string();
let label = label.into().to_string();
self.0
.run_mobile_plugin(
"write",
ClipKind::PlainText {
text,
label: Some(label),
},
)
.map_err(Into::into)
}
pub fn write_image(&self, _image: &Image<'_>) -> 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(),
))
}
pub fn read_text(&self) -> crate::Result<ClipboardContents> {
self.0.run_mobile_plugin("read", ()).map_err(Into::into)
pub fn read_text(&self) -> crate::Result<String> {
self.0
.run_mobile_plugin("read", ())
.map(|c| match c {
ClipboardContents::PlainText { text } => text,
})
.map_err(Into::into)
}
pub fn read_image(&self) -> crate::Result<Image<'_>> {
@@ -64,7 +81,11 @@ impl<R: Runtime> Clipboard<R> {
}
// Treat HTML as unsupported on mobile until tested
pub fn write_html(&self, _kind: ClipKind) -> crate::Result<()> {
pub fn write_html<'a, T: Into<Cow<'a, str>>>(
&self,
_html: T,
_alt_text: Option<T>,
) -> crate::Result<()> {
Err(crate::Error::Clipboard(
"Unsupported on this platform".to_string(),
))
@@ -76,3 +97,15 @@ impl<R: Runtime> Clipboard<R> {
))
}
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
enum ClipKind {
PlainText { label: Option<String>, text: String },
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
enum ClipboardContents {
PlainText { text: String },
}
-36
View File
@@ -1,36 +0,0 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
use serde::{Deserialize, Serialize};
#[derive(Deserialize)]
#[cfg_attr(mobile, derive(Serialize))]
#[serde(rename_all = "camelCase")]
pub enum ClipKind {
PlainText {
label: Option<String>,
text: String,
},
#[cfg(desktop)]
Image {
image: tauri::image::JsImage,
},
Html {
html: String,
alt_html: Option<String>,
},
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum ClipboardContents {
PlainText {
text: String,
},
Image {
bytes: Vec<u8>,
width: usize,
height: usize,
},
}
+8
View File
@@ -1,5 +1,13 @@
# Changelog
## \[2.0.0-beta.4]
- [`021d23be`](https://github.com/tauri-apps/plugins-workspace/commit/021d23bef330de4ce001993e0ef2c7ab7815f044)([#916](https://github.com/tauri-apps/plugins-workspace/pull/916)) Added desktop support.
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
+15 -5
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-deep-link"
version = "2.0.0-beta.3"
version = "2.0.0-beta.5"
description = "Set your Tauri application as the default handler for an URL"
authors = { workspace = true }
license = { workspace = true }
@@ -10,19 +10,29 @@ 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-utils = { workspace = true }
tauri-plugin = { workspace = true, features = [ "build" ] }
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
tauri = { workspace = true }
tauri-utils = { workspace = true }
log = { workspace = true }
thiserror = { workspace = true }
url = { workspace = true }
[target."cfg(windows)".dependencies]
dunce = "1"
windows-registry = "0.1"
windows-result = "0.1"
[target."cfg(target_os = \"linux\")".dependencies]
rust-ini = "0.21"
+9 -4
View File
@@ -93,16 +93,19 @@ See [supporting associated domains](https://developer.apple.com/documentation/xc
## Configuration
Under `tauri.conf.json > plugins > deep-link`, configure the domains you want to associate with your application:
Under `tauri.conf.json > plugins > deep-link`, configure the domains (mobile) and schemes (desktop) you want to associate with your application:
```json
{
"plugins": {
"deep-link": {
"domains": [
"mobile": [
{ "host": "your.website.com", "pathPrefix": ["/open"] },
{ "host": "another.site.br" }
]
],
"desktop": {
"schemes": ["something", "my-tauri-app"]
}
}
}
}
@@ -128,10 +131,12 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind
```javascript
import { onOpenUrl } from "@tauri-apps/plugin-deep-link";
await onOpenUrl((urls) => {
console.log('deep link:', urls);
console.log("deep link:", urls);
});
```
Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin.
## Contributing
PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
+1 -1
View File
@@ -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){const a=(void 0,{kind:"Any"});return r("plugin:event|listen",{event:e,target:a,handler:n(t)}).then((n=>async()=>async function(e,n){await r("plugin:event|unlisten",{event:e,eventId:n})}(e,n)))}async function a(){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=a,e.isRegistered=async function(e){return await r("plugin:deep-link|i_registered",{protocol:e})},e.onOpenUrl=async function(e){const n=await a();return null!=n&&e(n),await i("deep-link://new-url",(n=>{e(n.payload)}))},e.register=async function(e){return await r("plugin:deep-link|register",{protocol:e})},e.unregister=async function(e){return await r("plugin:deep-link|unregister",{protocol:e})},e}({});Object.defineProperty(window.__TAURI__,"deepLink",{value:__TAURI_PLUGIN_DEEPLINK__})}
+3 -3
View File
@@ -6,7 +6,7 @@
mod config;
use config::{AssociatedDomain, Config};
const COMMANDS: &[&str] = &["get_current"];
const COMMANDS: &[&str] = &["get_current", "register", "unregister", "is_registered"];
// TODO: Consider using activity-alias in case users may have multiple activities in their app.
// TODO: Do we want to support the other path* configs too?
@@ -48,7 +48,7 @@ fn main() {
"DEEP LINK PLUGIN",
"activity",
config
.domains
.mobile
.iter()
.map(intent_filter)
.collect::<Vec<_>>()
@@ -62,7 +62,7 @@ fn main() {
entitlements.insert(
"com.apple.developer.associated-domains".into(),
config
.domains
.mobile
.into_iter()
.map(|d| format!("applinks:{}", d.host).into())
.collect::<Vec<_>>()
@@ -1,5 +1,17 @@
# Changelog
## \[2.0.0-beta.4]
### Dependencies
- Upgraded to `deep-link-js@2.0.0-beta.4`
## \[2.0.0-beta.3]
### Dependencies
- Upgraded to `deep-link-js@2.0.0-beta.3`
## \[2.0.0-beta.2]
### Dependencies
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "deep-link-example",
"private": true,
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.4",
"type": "module",
"scripts": {
"dev": "vite",
@@ -10,11 +10,11 @@
"tauri": "tauri"
},
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8",
"@tauri-apps/plugin-deep-link": "2.0.0-beta.2"
"@tauri-apps/api": "2.0.0-beta.11",
"@tauri-apps/plugin-deep-link": "2.0.0-beta.4"
},
"devDependencies": {
"@tauri-apps/cli": "2.0.0-beta.13",
"@tauri-apps/cli": "2.0.0-beta.16",
"internal-ip": "^8.0.0",
"typescript": "^5.2.2",
"vite": "^5.0.13"
@@ -28,15 +28,13 @@
"hello": "world"
},
"deep-link": {
"domains": [
{
"host": "fabianlars.de",
"pathPrefix": ["/intent"]
},
{
"host": "tauri.app"
}
]
"mobile": [
{ "host": "fabianlars.de", "pathPrefix": ["/intent"] },
{ "host": "tauri.app" }
],
"desktop": {
"schemes": ["fabianlars", "my-tauri-app"]
}
}
},
"bundle": {
+1 -1
View File
@@ -3,7 +3,7 @@
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext", "DOM"],
"moduleResolution": "Node",
"moduleResolution": "bundler",
"strict": true,
"sourceMap": true,
"resolveJsonModule": true,
+90 -7
View File
@@ -3,14 +3,97 @@
// 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";
/**
* Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link.
*
* @example
* ```typescript
* import { getCurrent } from '@tauri-apps/plugin-deep-link';
* const urls = await getCurrent();
* ```
*
* #### - **Windows / Linux**: Unsupported.
*
* @since 2.0.0
*/
export async function getCurrent(): Promise<string[] | null> {
return await invoke<string[] | null>("plugin:deep-link|get_current");
// return await invoke("plugin:deep-link|get_current");
return await invoke("plugin:deep-link|get_current");
}
/**
* Register the app as the default handler for the specified protocol.
*
* @param protocol The name of the protocol without `://`. For example, if you want your app to handle `tauri://` links, call this method with `tauri` as the protocol.
*
* @example
* ```typescript
* import { register } from '@tauri-apps/plugin-deep-link';
* await register("my-scheme");
* ```
*
* #### - **macOS / Android / iOS**: Unsupported.
*
* @since 2.0.0
*/
export async function register(protocol: string): Promise<null> {
return await invoke("plugin:deep-link|register", { protocol });
}
/**
* Unregister the app as the default handler for the specified protocol.
*
* @param protocol The name of the protocol without `://`.
*
* @example
* ```typescript
* import { unregister } from '@tauri-apps/plugin-deep-link';
* await unregister("my-scheme");
* ```
*
* #### - **macOS / Linux / Android / iOS**: Unsupported.
*
* @since 2.0.0
*/
export async function unregister(protocol: string): Promise<null> {
return await invoke("plugin:deep-link|unregister", { protocol });
}
/**
* Check whether the app is the default handler for the specified protocol.
*
* @param protocol The name of the protocol without `://`.
*
* @example
* ```typescript
* import { isRegistered } from '@tauri-apps/plugin-deep-link';
* await isRegistered("my-scheme");
* ```
*
* #### - **macOS / Android / iOS**: Unsupported, always returns `true`.
*
* @since 2.0.0
*/
export async function isRegistered(protocol: string): Promise<boolean> {
return await invoke("plugin:deep-link|i_registered", { protocol });
}
/**
* Helper function for the `deep-link://new-url` event to run a function each time the protocol is triggered while the app is running. Use `getCurrent` on app load to check whether your app was started via a deep link.
*
* @param protocol The name of the protocol without `://`.
*
* @example
* ```typescript
* import { onOpenUrl } from '@tauri-apps/plugin-deep-link';
* await onOpenUrl((urls) => { console.log(urls) });
* ```
*
* #### - **Windows / Linux**: Unsupported, the OS will spawn a new app instance passing the URL as a CLI argument.
*
* @since 2.0.0
*/
export async function onOpenUrl(
handler: (urls: string[]) => void,
): Promise<UnlistenFn> {
@@ -19,7 +102,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);
});
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-deep-link",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.4",
"description": "Set your Tauri application as the default handler for an URL",
"license": "MIT or APACHE-2.0",
"authors": [
@@ -24,6 +24,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
@@ -0,0 +1,13 @@
# Automatically generated - DO NOT EDIT!
"$schema" = "../../schemas/schema.json"
[[permission]]
identifier = "allow-is-registered"
description = "Enables the is_registered command without any pre-configured scope."
commands.allow = ["is_registered"]
[[permission]]
identifier = "deny-is-registered"
description = "Denies the is_registered command without any pre-configured scope."
commands.deny = ["is_registered"]
@@ -0,0 +1,13 @@
# Automatically generated - DO NOT EDIT!
"$schema" = "../../schemas/schema.json"
[[permission]]
identifier = "allow-register"
description = "Enables the register command without any pre-configured scope."
commands.allow = ["register"]
[[permission]]
identifier = "deny-register"
description = "Denies the register command without any pre-configured scope."
commands.deny = ["register"]
@@ -0,0 +1,13 @@
# Automatically generated - DO NOT EDIT!
"$schema" = "../../schemas/schema.json"
[[permission]]
identifier = "allow-unregister"
description = "Enables the unregister command without any pre-configured scope."
commands.allow = ["unregister"]
[[permission]]
identifier = "deny-unregister"
description = "Denies the unregister command without any pre-configured scope."
commands.deny = ["unregister"]
@@ -2,4 +2,10 @@
|------|-----|
|`allow-get-current`|Enables the get_current command without any pre-configured scope.|
|`deny-get-current`|Denies the get_current command without any pre-configured scope.|
|`allow-is-registered`|Enables the is_registered command without any pre-configured scope.|
|`deny-is-registered`|Denies the is_registered command without any pre-configured scope.|
|`allow-register`|Enables the register command without any pre-configured scope.|
|`deny-register`|Denies the register command without any pre-configured scope.|
|`allow-unregister`|Enables the unregister command without any pre-configured scope.|
|`deny-unregister`|Denies the unregister command without any pre-configured scope.|
|`default`|Allows reading the opened deep link via the get_current command|
@@ -308,6 +308,48 @@
"deny-get-current"
]
},
{
"description": "allow-is-registered -> Enables the is_registered command without any pre-configured scope.",
"type": "string",
"enum": [
"allow-is-registered"
]
},
{
"description": "deny-is-registered -> Denies the is_registered command without any pre-configured scope.",
"type": "string",
"enum": [
"deny-is-registered"
]
},
{
"description": "allow-register -> Enables the register command without any pre-configured scope.",
"type": "string",
"enum": [
"allow-register"
]
},
{
"description": "deny-register -> Denies the register command without any pre-configured scope.",
"type": "string",
"enum": [
"deny-register"
]
},
{
"description": "allow-unregister -> Enables the unregister command without any pre-configured scope.",
"type": "string",
"enum": [
"allow-unregister"
]
},
{
"description": "deny-unregister -> Denies the unregister command without any pre-configured scope.",
"type": "string",
"enum": [
"deny-unregister"
]
},
{
"description": "default -> Allows reading the opened deep link via the get_current command",
"type": "string",
+30
View File
@@ -14,3 +14,33 @@ pub(crate) async fn get_current<R: Runtime>(
) -> Result<Option<Vec<url::Url>>> {
deep_link.get_current()
}
#[command]
pub(crate) async fn register<R: Runtime>(
_app: AppHandle<R>,
_window: Window<R>,
deep_link: State<'_, DeepLink<R>>,
protocol: String,
) -> Result<()> {
deep_link.register(protocol)
}
#[command]
pub(crate) async fn unregister<R: Runtime>(
_app: AppHandle<R>,
_window: Window<R>,
deep_link: State<'_, DeepLink<R>>,
protocol: String,
) -> Result<()> {
deep_link.unregister(protocol)
}
#[command]
pub(crate) async fn is_registered<R: Runtime>(
_app: AppHandle<R>,
_window: Window<R>,
deep_link: State<'_, DeepLink<R>>,
protocol: String,
) -> Result<bool> {
deep_link.is_registered(protocol)
}
+13 -3
View File
@@ -4,9 +4,8 @@
// This module is also imported in build.rs!
#![allow(dead_code)]
use serde::{Deserialize, Deserializer};
use tauri_utils::config::DeepLinkProtocol;
#[derive(Deserialize)]
pub struct AssociatedDomain {
@@ -32,5 +31,16 @@ where
#[derive(Deserialize)]
pub struct Config {
pub domains: Vec<AssociatedDomain>,
/// Mobile requires `https://<host>` urls.
pub mobile: Vec<AssociatedDomain>,
/// Desktop requires urls starting with `<scheme>://`.
/// These urls are also active in dev mode on Android.
pub desktop: DesktopProtocol,
}
#[derive(Deserialize)]
#[serde(untagged)]
pub enum DesktopProtocol {
One(DeepLinkProtocol),
List(Vec<DeepLinkProtocol>),
}
+13
View File
@@ -8,8 +8,21 @@ pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("unsupported platform")]
UnsupportedPlatform,
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Tauri(#[from] tauri::Error),
#[cfg(target_os = "windows")]
#[error(transparent)]
Windows(#[from] windows_result::Error),
#[cfg(target_os = "linux")]
#[error(transparent)]
Ini(#[from] ini::Error),
#[cfg(target_os = "linux")]
#[error(transparent)]
ParseIni(#[from] ini::ParseError),
#[cfg(mobile)]
#[error(transparent)]
PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError),
+256 -4
View File
@@ -82,32 +82,279 @@ mod imp {
pub struct DeepLink<R: Runtime>(pub(crate) PluginHandle<R>);
impl<R: Runtime> DeepLink<R> {
/// Get the current URLs that triggered the deep link.
/// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link.
///
/// ## Platform-specific:
///
/// - **Windows / Linux**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn get_current(&self) -> crate::Result<Option<Vec<url::Url>>> {
self.0
.run_mobile_plugin::<GetCurrentResponse>("getCurrent", ())
.map(|v| v.url.map(|url| vec![url]))
.map_err(Into::into)
}
/// Register the app as the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`. For example, if you want your app to handle `tauri://` links, call this method with `tauri` as the protocol.
///
/// ## Platform-specific:
///
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn register<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<()> {
Err(crate::Error::UnsupportedPlatform)
}
/// Unregister the app as the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`.
///
/// ## Platform-specific:
///
/// - **Linux**: Can only unregister the scheme if it was initially registered with [`register`](`Self::register`). May not work on older distros.
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn unregister<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<()> {
Err(crate::Error::UnsupportedPlatform)
}
/// Check whether the app is the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`.
///
/// ## Platform-specific:
///
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn is_registered<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<bool> {
Err(crate::Error::UnsupportedPlatform)
}
}
}
#[cfg(not(target_os = "android"))]
mod imp {
use std::sync::Mutex;
#[cfg(target_os = "linux")]
use std::{
fs::{create_dir_all, File},
io::Write,
process::Command,
};
#[cfg(target_os = "linux")]
use tauri::Manager;
use tauri::{AppHandle, Runtime};
#[cfg(windows)]
use windows_registry::CURRENT_USER;
/// Access to the deep-link APIs.
pub struct DeepLink<R: Runtime> {
#[allow(dead_code)]
pub(crate) app: AppHandle<R>,
#[allow(dead_code)]
pub(crate) current: Mutex<Option<Vec<url::Url>>>,
}
impl<R: Runtime> DeepLink<R> {
/// Get the current URLs that triggered the deep link.
/// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link.
///
/// ## Platform-specific:
///
/// - **Windows / Linux**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn get_current(&self) -> crate::Result<Option<Vec<url::Url>>> {
Ok(self.current.lock().unwrap().clone())
#[cfg(not(any(windows, target_os = "linux")))]
return Ok(self.current.lock().unwrap().clone());
#[cfg(any(windows, target_os = "linux"))]
Err(crate::Error::UnsupportedPlatform)
}
/// Register the app as the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`. For example, if you want your app to handle `tauri://` links, call this method with `tauri` as the protocol.
///
/// ## Platform-specific:
///
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn register<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<()> {
#[cfg(windows)]
{
let key_base = format!("Software\\Classes\\{}", _protocol.as_ref());
let exe = dunce::simplified(&tauri::utils::platform::current_exe()?)
.display()
.to_string();
let key_reg = CURRENT_USER.create(&key_base)?;
key_reg.set_string(
"",
&format!("URL:{} protocol", self.app.config().identifier),
)?;
key_reg.set_string("URL Protocol", "")?;
let icon_reg = CURRENT_USER.create(format!("{key_base}\\DefaultIcon"))?;
icon_reg.set_string("", &format!("{},0", &exe))?;
let cmd_reg = CURRENT_USER.create(format!("{key_base}\\shell\\open\\command"))?;
cmd_reg.set_string("", &format!("{} \"%1\"", &exe))?;
Ok(())
}
#[cfg(target_os = "linux")]
{
let bin = tauri::utils::platform::current_exe()?;
let file_name = format!(
"{}-handler.desktop",
bin.file_name().unwrap().to_string_lossy()
);
let appimage = self.app.env().appimage;
let exec = appimage
.clone()
.unwrap_or_else(|| bin.into_os_string())
.to_string_lossy()
.to_string();
let target = self.app.path().data_dir()?.join("applications");
create_dir_all(&target)?;
let target_file = target.join(&file_name);
let mime_type = format!("x-scheme-handler/{};", _protocol.as_ref());
if let Ok(mut desktop_file) = ini::Ini::load_from_file(&target_file) {
if let Some(section) = desktop_file.section_mut(Some("Desktop Entry")) {
if let Some(mimes) = section.remove("MimeType") {
section.append("MimeType", format!("{mimes};{mime_type};"))
} else {
section.append("MimeType", format!("{mime_type};"))
}
desktop_file.write_to_file(&target_file)?;
}
} else {
let mut file = File::create(target_file)?;
file.write_all(
format!(
include_str!("template.desktop"),
name = self
.app
.config()
.product_name
.clone()
.unwrap_or_else(|| file_name.clone()),
exec = exec,
mime_type = mime_type
)
.as_bytes(),
)?;
}
Command::new("update-desktop-database")
.arg(target)
.status()?;
Command::new("xdg-mime")
.args(["default", &file_name, _protocol.as_ref()])
.status()?;
Ok(())
}
#[cfg(not(any(windows, target_os = "linux")))]
Err(crate::Error::UnsupportedPlatform)
}
/// Unregister the app as the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`.
///
/// ## Platform-specific:
///
/// - **Linux**: Can only unregister the scheme if it was initially registered with [`register`](`Self::register`). May not work on older distros.
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn unregister<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<()> {
#[cfg(windows)]
{
CURRENT_USER.remove_tree(format!("Software\\Classes\\{}", _protocol.as_ref()))?;
Ok(())
}
#[cfg(target_os = "linux")]
{
let mimeapps_path = self.app.path().config_dir()?.join("mimeapps.list");
let mut mimeapps = ini::Ini::load_from_file(&mimeapps_path)?;
let file_name = format!(
"{}-handler.desktop",
tauri::utils::platform::current_exe()?
.file_name()
.unwrap()
.to_string_lossy()
);
if let Some(section) = mimeapps.section_mut(Some("Default Applications")) {
let scheme = format!("x-scheme-handler/{}", _protocol.as_ref());
if section.get(&scheme).unwrap_or_default() == file_name {
section.remove(scheme);
}
}
mimeapps.write_to_file(mimeapps_path)?;
Ok(())
}
#[cfg(not(any(windows, target_os = "linux")))]
Err(crate::Error::UnsupportedPlatform)
}
/// Check whether the app is the default handler for the specified protocol.
///
/// - `protocol`: The name of the protocol without `://`.
///
/// ## Platform-specific:
///
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn is_registered<S: AsRef<str>>(&self, _protocol: S) -> crate::Result<bool> {
#[cfg(windows)]
{
let cmd_reg = CURRENT_USER.open(format!(
"Software\\Classes\\{}\\shell\\open\\command",
_protocol.as_ref()
))?;
let registered_cmd: String = cmd_reg.get_string("")?;
let exe = dunce::simplified(&tauri::utils::platform::current_exe()?)
.display()
.to_string();
Ok(registered_cmd == format!("{} \"%1\"", &exe))
}
#[cfg(target_os = "linux")]
{
let file_name = format!(
"{}-handler.desktop",
tauri::utils::platform::current_exe()?
.file_name()
.unwrap()
.to_string_lossy()
);
let output = Command::new("xdg-mime")
.args([
"query",
"default",
&format!("x-scheme-handler/{}", _protocol.as_ref()),
])
.output()?;
Ok(String::from_utf8_lossy(&output.stdout).contains(&file_name))
}
#[cfg(not(any(windows, target_os = "linux")))]
Err(crate::Error::UnsupportedPlatform)
}
}
}
@@ -128,7 +375,12 @@ impl<R: Runtime, T: Manager<R>> crate::DeepLinkExt<R> for T {
/// Initializes the plugin.
pub fn init<R: Runtime>() -> TauriPlugin<R, Option<config::Config>> {
Builder::new("deep-link")
.invoke_handler(tauri::generate_handler![commands::get_current])
.invoke_handler(tauri::generate_handler![
commands::get_current,
commands::register,
commands::unregister,
commands::is_registered
])
.setup(|app, api| {
app.manage(init_deep_link(app, api)?);
Ok(())
+7
View File
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name={name}
Exec={exec} %u
Terminal=false
MimeType={mime_type}
NoDisplay=true
+14
View File
@@ -1,5 +1,17 @@
# Changelog
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
@@ -123,3 +135,5 @@
pull/371)) First v2 alpha release!
kspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
pull/371)) First v2 alpha release!
lpha release!
pull/371)) First v2 alpha release!
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-dialog"
version = "2.0.0-beta.5"
version = "2.0.0-beta.7"
description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application."
edition = { workspace = true }
authors = { workspace = true }
@@ -24,7 +24,7 @@ tauri = { workspace = true }
log = { workspace = true }
thiserror = { workspace = true }
dunce = { workspace = true }
tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.5" }
tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.7" }
[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" ] }
+1 -1
View File
@@ -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__})}
+6 -5
View File
@@ -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,
+3 -3
View File
@@ -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(),
});
};
+40 -28
View File
@@ -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)
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-dialog",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"license": "MIT or APACHE-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
@@ -23,6 +23,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
+1 -1
View File
@@ -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()})}}();
+11
View File
@@ -1,5 +1,13 @@
# Changelog
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[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.
@@ -79,3 +87,6 @@
717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
.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!
ac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
.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!
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-fs"
version = "2.0.0-beta.5"
version = "2.0.0-beta.7"
description = "Access the file system."
authors = { workspace = true }
license = { workspace = true }
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -165,7 +165,7 @@ permissions = [
[[set]]
identifier = "allow-{lower}-meta-recursive"
description = "This allows read access to metadata of the `${upper}` folder, including file listing and statistics."
description = "This allows full recursive read access to metadata of the `${upper}` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-{lower}-recursive"
@@ -173,7 +173,7 @@ permissions = [
[[set]]
identifier = "allow-{lower}-meta"
description = "This allows read access to metadata of the `${upper}` folder, including file listing and statistics."
description = "This allows non-recursive read access to metadata of the `${upper}` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-{lower}-index"
+19 -22
View File
@@ -249,10 +249,6 @@ function parseFileInfo(r: UnparsedFileInfo): FileInfo {
* @since 2.0.0
*/
class FileHandle extends Resource {
constructor(rid: number) {
super(rid);
}
/**
* Reads up to `p.byteLength` bytes into `p`. It resolves to the number of
* bytes read (`0` < `n` <= `p.byteLength`) and rejects if any error
@@ -330,7 +326,7 @@ class FileHandle extends Resource {
* @since 2.0.0
*/
async seek(offset: number, whence: SeekMode): Promise<number> {
return invoke("plugin:fs|seek", {
return await invoke("plugin:fs|seek", {
rid: this.rid,
offset,
whence,
@@ -382,7 +378,7 @@ class FileHandle extends Resource {
* @since 2.0.0
*/
async truncate(len?: number): Promise<void> {
return invoke("plugin:fs|ftruncate", {
await invoke("plugin:fs|ftruncate", {
rid: this.rid,
len,
});
@@ -409,7 +405,7 @@ class FileHandle extends Resource {
* @since 2.0.0
*/
async write(data: Uint8Array): Promise<number> {
return invoke("plugin:fs|write", {
return await invoke("plugin:fs|write", {
rid: this.rid,
data: Array.from(data),
});
@@ -569,7 +565,7 @@ async function copyFile(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|copy_file", {
await invoke("plugin:fs|copy_file", {
fromPath: fromPath instanceof URL ? fromPath.toString() : fromPath,
toPath: toPath instanceof URL ? toPath.toString() : toPath,
options,
@@ -608,7 +604,7 @@ async function mkdir(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|mkdir", {
await invoke("plugin:fs|mkdir", {
path: path instanceof URL ? path.toString() : path,
options,
});
@@ -669,7 +665,7 @@ async function readDir(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|read_dir", {
return await invoke("plugin:fs|read_dir", {
path: path instanceof URL ? path.toString() : path,
options,
});
@@ -728,7 +724,7 @@ async function readTextFile(
throw new TypeError("Must be a file URL.");
}
return invoke<string>("plugin:fs|read_text_file", {
return await invoke<string>("plugin:fs|read_text_file", {
path: path instanceof URL ? path.toString() : path,
options,
});
@@ -759,11 +755,11 @@ async function readTextFileLines(
const pathStr = path instanceof URL ? path.toString() : path;
return Promise.resolve({
return await Promise.resolve({
path: pathStr,
rid: null as number | null,
async next(): Promise<IteratorResult<string>> {
if (!this.rid) {
if (this.rid == null) {
this.rid = await invoke<number>("plugin:fs|read_text_file_lines", {
path: pathStr,
options,
@@ -779,7 +775,8 @@ async function readTextFileLines(
if (done) this.rid = null;
return {
value: done ? "" : (line as string),
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
value: done ? "" : line!,
done,
};
},
@@ -819,7 +816,7 @@ async function remove(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|remove", {
await invoke("plugin:fs|remove", {
path: path instanceof URL ? path.toString() : path,
options,
});
@@ -862,7 +859,7 @@ async function rename(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|rename", {
await invoke("plugin:fs|rename", {
oldPath: oldPath instanceof URL ? oldPath.toString() : oldPath,
newPath: newPath instanceof URL ? newPath.toString() : newPath,
options,
@@ -965,7 +962,7 @@ async function truncate(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|truncate", {
await invoke("plugin:fs|truncate", {
path: path instanceof URL ? path.toString() : path,
len,
options,
@@ -1010,7 +1007,7 @@ async function writeFile(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|write_file", {
await invoke("plugin:fs|write_file", {
path: path instanceof URL ? path.toString() : path,
data: Array.from(data),
options,
@@ -1037,7 +1034,7 @@ async function writeTextFile(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|write_text_file", {
await invoke("plugin:fs|write_text_file", {
path: path instanceof URL ? path.toString() : path,
data,
options,
@@ -1071,7 +1068,7 @@ async function exists(
throw new TypeError("Must be a file URL.");
}
return invoke("plugin:fs|exists", {
return await invoke("plugin:fs|exists", {
path: path instanceof URL ? path.toString() : path,
options,
});
@@ -1098,11 +1095,11 @@ interface DebouncedWatchOptions extends WatchOptions {
/**
* @since 2.0.0
*/
type WatchEvent = {
interface WatchEvent {
type: WatchEventKind;
paths: string[];
attrs: unknown;
};
}
/**
* @since 2.0.0
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-fs",
"version": "2.0.0-beta.2",
"version": "2.0.0-beta.3",
"description": "Access the file system.",
"license": "MIT or APACHE-2.0",
"authors": [
@@ -24,6 +24,6 @@
"LICENSE"
],
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.8"
"@tauri-apps/api": "2.0.0-beta.11"
}
}
@@ -63,7 +63,7 @@ permissions = [
[[set]]
identifier = "allow-app-meta-recursive"
description = "This allows read access to metadata of the `$APP` folder, including file listing and statistics."
description = "This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-app-recursive"
@@ -71,7 +71,7 @@ permissions = [
[[set]]
identifier = "allow-app-meta"
description = "This allows read access to metadata of the `$APP` folder, including file listing and statistics."
description = "This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-app-index"
@@ -63,7 +63,7 @@ permissions = [
[[set]]
identifier = "allow-appcache-meta-recursive"
description = "This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics."
description = "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appcache-recursive"
@@ -71,7 +71,7 @@ permissions = [
[[set]]
identifier = "allow-appcache-meta"
description = "This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics."
description = "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appcache-index"
@@ -63,7 +63,7 @@ permissions = [
[[set]]
identifier = "allow-appconfig-meta-recursive"
description = "This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics."
description = "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appconfig-recursive"
@@ -71,7 +71,7 @@ permissions = [
[[set]]
identifier = "allow-appconfig-meta"
description = "This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics."
description = "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appconfig-index"
@@ -63,7 +63,7 @@ permissions = [
[[set]]
identifier = "allow-appdata-meta-recursive"
description = "This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics."
description = "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appdata-recursive"
@@ -71,7 +71,7 @@ permissions = [
[[set]]
identifier = "allow-appdata-meta"
description = "This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics."
description = "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics."
permissions = [
"read-meta",
"scope-appdata-index"

Some files were not shown because too many files have changed in this diff Show More