Compare commits

...

23 Commits

Author SHA1 Message Date
github-actions[bot]
caddd5bdd8 Apply Version Updates From Current Changes (v1) (#9544)
* apply version updates

* downgrade tokio deps

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-04-22 12:34:26 -03:00
Lucas Fernandes Nogueira
72c2636527 chore(ci): fix MSRV downgrade (#9543) 2024-04-22 11:17:33 -03:00
Lucas Fernandes Nogueira
83e024c670 chore(ci): downgrade home crate (#9542)
* chore(ci): downgrade home crate

* chore: update deps
2024-04-22 10:57:59 -03:00
Lucas Fernandes Nogueira
07c9e352df fix(ci): downgrade cc crate for MSRV compatibility (#9541) 2024-04-22 10:15:52 -03:00
Fabian-Lars
d00178d60c ci: Fix package downgrades in covector workflow (#9538)
* ci: Fix package downgrades in covector workflow

* some more packages
2024-04-22 09:16:16 -03:00
Lucas Fernandes Nogueira
705da977a9 fix: optional chaining is not supported on older webviews (#9529) 2024-04-21 20:53:51 -03:00
Fabian-Lars
1675e41f05 fix(bundler): don't convert product name to snake case when cross compiling (#9481)
* fix(bundler): Don't convert product name to snake case when cross compiling

fixes #9221

* Update bundler-cross-uppercase-productname.md

* Update .changes/bundler-cross-uppercase-productname.md
2024-04-18 17:04:17 +02:00
Fabian-Lars
f9638b6315 fix(cli): append extension to app binary manually on rename (#9491)
fixes #9488
fixes #8848
2024-04-18 05:31:07 +02:00
Amr Bashir
aeddc40b9e fix(cli/info): fix crash when checking node version (#9411)
closes #9396
2024-04-15 11:39:17 +02:00
Amr Bashir
fe6f81fa88 chore: fix clippy false positive (#9329) 2024-04-01 13:11:09 -03:00
Jet Li
9dd67abd93 fix(cli): upgrade heck to better support Chinese/Japanese prodcut name on Linux (#9298) 2024-04-01 17:23:15 +02:00
Fabian-Lars
dbe81b8410 fix(bundler/nsis): Don't use /R flag on installation dir (#9282) 2024-03-27 00:55:57 +02:00
Fabian-Lars
017861e4d5 fix(bundler): Fix nsis resource paths on non-windows build systems. (#9281)
* fix(bundler): Fix nsis resource paths on non-windows build systems.

* remove leftover from alternative
2024-03-27 00:40:29 +02:00
Fabian-Lars
77cc49ac3c fix(cli): Clone Options struct after mutating it. (#9188) 2024-03-19 10:37:12 -03:00
Amr Bashir
e3b6d38d26 fix(core/path): remove suffix in basename only once (#9166)
* fix(core/path): remove suffix in basename only once

ref: #9064

* Update tooling/api/src/path.ts

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-03-18 08:40:18 -03:00
github-actions[bot]
b705f89a10 Apply Version Updates From Current Changes (v1) (#9074)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-03-07 15:18:27 -03:00
Amr Bashir
97a05145fb fix(cli): migrate to stable features of log crate (#9119)
* fix(cli): migrate to stable features of `log` crate

* to_cow_str
2024-03-07 13:39:32 -03:00
anatawa12
b15948b11c fix(cli): use matched_path_or_any_parents when checking if a file is ignored (#8903)
* fix: taurignore ignoreing folders not working for watch

* docs: add to changes

* fix: panic: path is expected to be under the root

* Update taurignore-ignoring-folders-not-working-for-watch.md

* Update taurignore-ignoring-folders-not-working-for-watch.md
2024-03-06 21:12:41 +02:00
bifs
5163861588 fix(bundler): escape potentially problematic strings in an XML (#9040)
* fix(bundler): escape potentially problematic strings in an XML (#9030)

- replace characters invalid in XML with their escaped form to properly bundle resources with such characters in their pathnames.

* change file
2024-03-04 21:08:12 +02:00
github-actions[bot]
80a215a6f3 Apply Version Updates From Current Changes (v1) (#9013)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-02-28 00:11:02 -03:00
Amr Bashir
01ae1218dc ci: downgrade thread_local to 1.1.7 in msrv list (#9012) 2024-02-27 23:03:28 -03:00
Amr Bashir
d42668ce17 fix(runtime-wry): avoid panic during clipboard initialization on wayland (#9003)
closes #8964
2024-02-27 14:35:22 -03:00
Amr Bashir
1ab0db6352 chore: port PR template from dev branch (#9004) 2024-02-27 18:48:00 +02:00
36 changed files with 758 additions and 623 deletions

View File

@@ -1,30 +1,21 @@
<!--
Update "[ ]" to "[x]" to check a box
Before submitting a PR, please read https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
Please make sure to read the Pull Request Guidelines: https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
1. Give the PR a descriptive title.
Examples of good title:
- fix(windows): fix race condition in event loop
- docs: update docstrings
- feat: add `Window::set_fullscreen`
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. If there is a related issue, reference it in the PR text, e.g. closes #123.
3. If this change requires a new version, then add a change file in `.changes` directory with the appropriate bump, see https://github.com/tauri-apps/tauri/blob/dev/.changes/readme.md
4. Ensure that all your commits are signed https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits
5. Ensure `cargo test` and `cargo clippy` passes.
6. Propose your changes as a draft PR if your work is still in progress.
-->
### What kind of change does this PR introduce?
<!-- Check at least one. If you are introducing a new binding, you must reference an issue where this binding has been proposed, discussed and approved by the maintainers. -->
- [ ] Bugfix
- [ ] Feature
- [ ] Docs
- [ ] New Binding issue #___
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:
### Does this PR introduce a breaking change?
<!-- If yes, please describe the impact and migration path for existing applications in an attached issue. -->
- [ ] Yes, and the changes were approved in issue #___
- [ ] No
### Checklist
- [ ] When resolving issues, they are referenced in the PR's title (e.g `fix: remove a typo, closes #___, #___`)
- [ ] A change file is added if any packages will require a version bump due to this PR per [the instructions in the readme](https://github.com/tauri-apps/tauri/blob/dev/.changes/readme.md).
- [ ] I have added a convincing reason for adding this feature, if necessary
### Other information

View File

@@ -56,10 +56,11 @@ jobs:
- name: Downgrade crates with MSRV conflict
# The --precise flag can only be used once per invocation.
run: |
cargo update -p system-deps:6.2.0 --precise 6.1.1
cargo update -p system-deps:6.2.2 --precise 6.1.1
cargo update -p toml:0.7.8 --precise 0.7.3
cargo update -p toml_edit:0.19.15 --precise 0.19.8
cargo update -p embed-resource --precise 2.3.0
cargo update -p notify-rust --precise 4.10.0
cargo update -p toml_datetime --precise 0.6.1
cargo update -p serde_spanned --precise 0.6.1
cargo update -p winnow --precise 0.4.1
@@ -73,13 +74,13 @@ jobs:
cargo update -p colored --precise 2.0.2
cargo update -p arboard --precise 3.2.1
cargo update -p tempfile --precise 3.6.0
cargo update -p serde_with:3.6.1 --precise 3.0.0
cargo update -p serde_with:3.7.0 --precise 3.0.0
cargo update -p tokio --precise 1.29.0
cargo update -p flate2 --precise 1.0.26
cargo update -p h2 --precise 0.3.20
cargo update -p reqwest --precise 0.11.18
cargo update -p bstr --precise 1.6.2
cargo update -p cfg-expr:0.15.7 --precise 0.15.4
cargo update -p cfg-expr:0.15.8 --precise 0.15.4
cargo update -p memchr --precise 2.6.2
cargo update -p async-executor --precise 1.5.1
cargo update -p proptest --precise 1.2.0
@@ -88,7 +89,6 @@ jobs:
cargo update -p backtrace --precise 0.3.68
cargo update -p blocking --precise 1.4.1
cargo update -p ignore --precise 0.4.18
cargo update -p regex --precise 1.9.6
cargo update -p globset --precise 0.4.13
cargo update -p crossbeam-channel --precise 0.5.8
cargo update -p crossbeam-utils --precise 0.8.16
@@ -99,6 +99,12 @@ jobs:
cargo update -p serde_json --precise 1.0.97
cargo update -p petgraph --precise 0.6.3
cargo update -p os_str_bytes --precise 6.5.1
cargo update -p thread_local --precise 1.1.7
cargo update -p cc --precise 1.0.94
cargo update -p home --precise 0.5.5
cargo update -p tree_magic_mini --precise 3.0.3
cargo update -p tokio-test --precise 0.4.3
cargo update -p tokio-stream --precise 0.1.14
- name: test build
run: cargo check --target ${{ matrix.platform.target }} --features tracing,compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test

479
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ tauri-utils = { version = "1.5.3", path = "../tauri-utils", features = [
cargo_toml = "0.15"
serde = "1"
serde_json = "1"
heck = "0.4"
heck = "0.5"
json-patch = "1.2"
tauri-winres = "0.1"
semver = "1"

View File

@@ -19,7 +19,7 @@ proc-macro = true
proc-macro2 = { version = "1", features = ["span-locations"] }
quote = "1"
syn = { version = "1", features = ["full"] }
heck = "0.4"
heck = "0.5"
tauri-codegen = { version = "1.4.2", default-features = false, path = "../tauri-codegen" }
tauri-utils = { version = "1.5.3", path = "../tauri-utils" }

View File

@@ -1,5 +1,11 @@
# Changelog
## \[0.14.5]
### What's Changed
- [`d42668ce`](https://www.github.com/tauri-apps/tauri/commit/d42668ce17494ab778f436aaa9b216d6db3f0b31)([#9003](https://www.github.com/tauri-apps/tauri/pull/9003)) Fix panic during intialization on wayland when using `clipboard` feature, instead propagate the error during API usage.
## \[0.14.4]
### Bug Fixes

View File

@@ -1,25 +1,22 @@
[package]
name = "tauri-runtime-wry"
version = "0.14.4"
authors = ["Tauri Programme within The Commons Conservancy"]
categories = ["gui", "web-programming"]
version = "0.14.5"
authors = [ "Tauri Programme within The Commons Conservancy" ]
categories = [ "gui", "web-programming" ]
license = "Apache-2.0 OR MIT"
homepage = "https://tauri.app"
repository = "https://github.com/tauri-apps/tauri"
description = "Wry bindings to the Tauri runtime"
edition = "2021"
rust-version = "1.60"
exclude = ["CHANGELOG.md", "/target"]
exclude = [ "CHANGELOG.md", "/target" ]
readme = "README.md"
[dependencies]
wry = { version = "0.24.6", default-features = false, features = [
"file-drop",
"protocol",
] }
wry = { version = "0.24.6", default-features = false, features = [ "file-drop", "protocol" ] }
tauri-runtime = { version = "0.14.2", path = "../tauri-runtime" }
tauri-utils = { version = "1.5.3", path = "../tauri-utils" }
uuid = { version = "1", features = ["v4"] }
uuid = { version = "1", features = [ "v4" ] }
rand = "0.8"
raw-window-handle = "0.5"
tracing = { version = "0.1", optional = true }
@@ -28,29 +25,29 @@ arboard = { version = "3", optional = true }
[target."cfg(windows)".dependencies]
webview2-com = "0.19.1"
[target."cfg(windows)".dependencies.windows]
version = "0.39.0"
features = ["Win32_Foundation"]
[target."cfg(windows)".dependencies.windows]
version = "0.39.0"
features = [ "Win32_Foundation" ]
[target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
gtk = { version = "0.15", features = ["v3_20"] }
webkit2gtk = { version = "0.18.2", features = ["v2_22"] }
gtk = { version = "0.15", features = [ "v3_20" ] }
webkit2gtk = { version = "0.18.2", features = [ "v2_22" ] }
percent-encoding = "2.1"
[target."cfg(any(target_os = \"ios\", target_os = \"macos\"))".dependencies]
cocoa = "0.24"
[features]
dox = ["wry/dox"]
devtools = ["wry/devtools", "tauri-runtime/devtools"]
system-tray = ["tauri-runtime/system-tray", "wry/tray"]
dox = [ "wry/dox" ]
devtools = [ "wry/devtools", "tauri-runtime/devtools" ]
system-tray = [ "tauri-runtime/system-tray", "wry/tray" ]
macos-private-api = [
"wry/fullscreen",
"wry/transparent",
"tauri-runtime/macos-private-api",
"tauri-runtime/macos-private-api"
]
objc-exception = ["wry/objc-exception"]
global-shortcut = ["tauri-runtime/global-shortcut"]
clipboard = ["tauri-runtime/clipboard", "arboard/wayland-data-control"]
linux-headers = ["wry/linux-headers", "webkit2gtk/v2_36"]
tracing = ["dep:tracing", "wry/tracing"]
objc-exception = [ "wry/objc-exception" ]
global-shortcut = [ "tauri-runtime/global-shortcut" ]
clipboard = [ "tauri-runtime/clipboard", "arboard/wayland-data-control" ]
linux-headers = [ "wry/linux-headers", "webkit2gtk/v2_36" ]
tracing = [ "dep:tracing", "wry/tracing" ]

View File

@@ -14,7 +14,7 @@ use tauri_runtime::{ClipboardManager, Result};
#[derive(Clone)]
pub struct ClipboardManagerWrapper {
pub clipboard: Arc<Mutex<Clipboard>>,
pub clipboard: Arc<Mutex<std::result::Result<Clipboard, arboard::Error>>>,
}
impl fmt::Debug for ClipboardManagerWrapper {
@@ -23,17 +23,47 @@ impl fmt::Debug for ClipboardManagerWrapper {
}
}
struct ClipboardError(String);
impl std::error::Error for ClipboardError {}
impl fmt::Display for ClipboardError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "ClipboardError: {}", self.0)
}
}
impl fmt::Debug for ClipboardError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_tuple("ClipboardError").field(&self.0).finish()
}
}
impl From<ClipboardError> for crate::Error {
fn from(e: ClipboardError) -> crate::Error {
crate::Error::Clipboard(Box::new(e))
}
}
impl ClipboardManager for ClipboardManagerWrapper {
fn read_text(&self) -> Result<Option<String>> {
Ok(self.clipboard.lock().unwrap().get_text().ok())
}
fn write_text<V: Into<String>>(&mut self, text: V) -> Result<()> {
self
.clipboard
.lock()
.unwrap()
.set_text(text.into())
.map_err(|e| crate::Error::Clipboard(Box::new(e)))
.as_mut()
.map(|c| c.get_text().map(Some))
.map_err(|e| ClipboardError(e.to_string()))?
.map_err(|e| ClipboardError(e.to_string()))
.map_err(Into::into)
}
fn write_text<V: Into<String>>(&mut self, text: V) -> Result<()> {
let text = text.into();
self
.clipboard
.lock()
.unwrap()
.as_mut()
.map(|c| c.set_text(text))
.map_err(|e| ClipboardError(e.to_string()))?
.map_err(|e| ClipboardError(e.to_string()))
.map_err(Into::into)
}
}

View File

@@ -2019,7 +2019,7 @@ impl<T: UserEvent> Wry<T> {
#[cfg(feature = "clipboard")]
#[allow(clippy::redundant_clone)]
let clipboard_manager_handle = ClipboardManagerWrapper {
clipboard: Arc::new(Mutex::new(Clipboard::new().unwrap())),
clipboard: Arc::new(Mutex::new(Clipboard::new())),
};
Ok(Self {

View File

@@ -40,7 +40,7 @@ dunce = "1"
log = "0.4.20"
[target."cfg(target_os = \"linux\")".dependencies]
heck = "0.4"
heck = "0.5"
[target."cfg(windows)".dependencies]
windows-version = "0.1"

View File

@@ -41,6 +41,8 @@ impl StartingBinary {
///
/// Because [`Error`] is not clone-able, it is recreated instead.
pub(super) fn cloned(&self) -> Result<PathBuf> {
// false positive
#[allow(clippy::useless_asref)]
self
.0
.as_ref()

View File

@@ -1,5 +1,18 @@
# Changelog
## \[1.6.2]
### Bug Fixes
- [`e3b6d38d2`](https://www.github.com/tauri-apps/tauri/commit/e3b6d38d26d27b292f98d6c0e8603a15265a5b43)([#9166](https://www.github.com/tauri-apps/tauri/pull/9166)) Fix `basename(path, 'ext')` JS API when removing all occurances of `ext` where it should only remove the last one.
- [`705da977a`](https://www.github.com/tauri-apps/tauri/commit/705da977a9c941a4b2d90219b34925498f507ab2)([#9529](https://www.github.com/tauri-apps/tauri/pull/9529)) Do not use JS optional chaining to prevent script errors on older webviews such as macOS 10.14.
## \[1.6.1]
### Dependencies
- Upgraded to `tauri-runtime-wry@0.14.5`
## \[1.6.0]
### New Features

View File

@@ -1,16 +1,16 @@
[package]
authors = ["Tauri Programme within The Commons Conservancy"]
categories = ["gui", "web-programming"]
authors = [ "Tauri Programme within The Commons Conservancy" ]
categories = [ "gui", "web-programming" ]
description = "Make tiny, secure apps for all desktop platforms with Tauri"
edition = "2021"
rust-version = "1.60"
exclude = ["/test", "/.scripts", "CHANGELOG.md", "/target"]
exclude = [ "/test", "/.scripts", "CHANGELOG.md", "/target" ]
homepage = "https://tauri.app"
license = "Apache-2.0 OR MIT"
name = "tauri"
readme = "README.md"
repository = "https://github.com/tauri-apps/tauri"
version = "1.6.0"
version = "1.6.2"
[package.metadata.docs.rs]
no-default-features = true
@@ -35,43 +35,35 @@ features = [
"process-exit",
"protocol-asset",
"process-command-api",
"shell-open",
"shell-open"
]
rustdoc-args = ["--cfg", "doc_cfg"]
rustdoc-args = [ "--cfg", "doc_cfg" ]
default-target = "x86_64-unknown-linux-gnu"
targets = [
"x86_64-pc-windows-msvc",
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-apple-darwin"
]
[package.metadata.cargo-udeps.ignore]
normal = ["reqwest", "nix"]
normal = [ "reqwest", "nix" ]
[dependencies]
serde_json = { version = "1.0", features = ["raw_value", "preserve_order"] }
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = [
"rt",
"rt-multi-thread",
"sync",
"fs",
"io-util",
] }
serde_json = { version = "1.0", features = [ "raw_value", "preserve_order" ] }
serde = { version = "1.0", features = [ "derive" ] }
tokio = { version = "1", features = [ "rt", "rt-multi-thread", "sync", "fs", "io-util" ] }
futures-util = "0.3"
uuid = { version = "1", features = ["v4"] }
uuid = { version = "1", features = [ "v4" ] }
url = { version = "2.3" }
anyhow = "1.0"
thiserror = "1.0"
once_cell = "1"
tauri-runtime = { version = "0.14.2", path = "../tauri-runtime" }
tauri-macros = { version = "1.4.3", path = "../tauri-macros" }
tauri-utils = { version = "1.5.3", features = [
"resources",
], path = "../tauri-utils" }
tauri-runtime-wry = { version = "0.14.4", path = "../tauri-runtime-wry", optional = true }
tauri-utils = { version = "1.5.3", features = [ "resources" ], path = "../tauri-utils" }
tauri-runtime-wry = { version = "0.14.5", path = "../tauri-runtime-wry", optional = true }
rand = "0.8"
semver = { version = "1.0", features = ["serde"] }
semver = { version = "1.0", features = [ "serde" ] }
serde_repr = "0.1"
state = "0.5"
tar = "0.4.38"
@@ -84,17 +76,14 @@ dirs-next = "2.0"
percent-encoding = "2.2"
base64 = { version = "0.21", optional = true }
clap = { version = "3", optional = true }
reqwest = { version = "0.11", features = ["json", "stream"], optional = true }
bytes = { version = "1", features = ["serde"], optional = true }
reqwest = { version = "0.11", features = [ "json", "stream" ], optional = true }
bytes = { version = "1", features = [ "serde" ], optional = true }
open = { version = "3.2", optional = true }
shared_child = { version = "1.0", optional = true }
os_pipe = { version = "1.0", optional = true }
raw-window-handle = "0.5"
minisign-verify = { version = "0.2", optional = true }
time = { version = "0.3", features = [
"parsing",
"formatting",
], optional = true }
time = { version = "0.3", features = [ "parsing", "formatting" ], optional = true }
os_info = { version = "3", optional = true }
regex = { version = "1", optional = true }
glob = "0.3"
@@ -106,24 +95,17 @@ ico = { version = "0.2.0", optional = true }
encoding_rs = "0.8.31"
sys-locale = { version = "0.2.3", optional = true }
tracing = { version = "0.1", optional = true }
indexmap = { version = "1", features = ["std", "serde"], optional = true }
indexmap = { version = "1", features = [ "std", "serde" ], optional = true }
[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.10", optional = true, features = [
"gtk3",
"common-controls-v6",
] }
rfd = { version = "0.10", optional = true, features = [ "gtk3", "common-controls-v6" ] }
notify-rust = { version = "4.5", optional = true }
[target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
gtk = { version = "0.15", features = ["v3_20"] }
gtk = { version = "0.15", features = [ "v3_20" ] }
glib = "0.15"
webkit2gtk = { version = "0.18.2", features = ["v2_22"] }
nix = { version = "0.26.0", default-features = false, features = [
"user",
"socket",
"uio",
], optional = true }
webkit2gtk = { version = "0.18.2", features = [ "v2_22" ] }
nix = { version = "0.26.0", default-features = false, features = [ "user", "socket", "uio" ], optional = true }
[target."cfg(target_os = \"macos\")".dependencies]
embed_plist = "1.2"
@@ -135,12 +117,12 @@ dunce = "1"
webview2-com = "0.19.1"
win7-notifications = { version = "0.4", optional = true }
[target."cfg(windows)".dependencies.windows]
version = "0.39.0"
features = ["Win32_Foundation"]
[target."cfg(windows)".dependencies.windows]
version = "0.39.0"
features = [ "Win32_Foundation" ]
[build-dependencies]
heck = "0.4"
heck = "0.5"
once_cell = "1"
[dev-dependencies]
@@ -148,57 +130,61 @@ mockito = "0.31"
proptest = "1.0.0"
quickcheck = "1.0.3"
quickcheck_macros = "1.0.0"
serde = { version = "1.0", features = ["derive"] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
tauri = { path = ".", default-features = false, features = ["wry"] }
tauri = { path = ".", default-features = false, features = [ "wry" ] }
tokio-test = "0.4.2"
tokio = { version = "1", features = ["full"] }
tokio = { version = "1", features = [ "full" ] }
cargo_toml = "0.11"
[features]
default = ["wry", "compression", "objc-exception"]
tracing = ["dep:tracing", "tauri-macros/tracing", "tauri-runtime-wry/tracing"]
test = []
compression = ["tauri-macros/compression", "tauri-utils/compression"]
wry = ["tauri-runtime-wry"]
objc-exception = ["tauri-runtime-wry/objc-exception"]
linux-protocol-headers = ["tauri-runtime-wry/linux-headers", "webkit2gtk/v2_36"]
isolation = ["tauri-utils/isolation", "tauri-macros/isolation"]
custom-protocol = ["tauri-macros/custom-protocol"]
default = [ "wry", "compression", "objc-exception" ]
tracing = [
"dep:tracing",
"tauri-macros/tracing",
"tauri-runtime-wry/tracing"
]
test = [ ]
compression = [ "tauri-macros/compression", "tauri-utils/compression" ]
wry = [ "tauri-runtime-wry" ]
objc-exception = [ "tauri-runtime-wry/objc-exception" ]
linux-protocol-headers = [ "tauri-runtime-wry/linux-headers", "webkit2gtk/v2_36" ]
isolation = [ "tauri-utils/isolation", "tauri-macros/isolation" ]
custom-protocol = [ "tauri-macros/custom-protocol" ]
updater = [
"minisign-verify",
"time",
"base64",
"http-api",
"dialog-ask",
"fs-extract-api",
"fs-extract-api"
]
http-api = ["reqwest", "bytes", "indexmap"]
http-multipart = ["reqwest/multipart"]
os-api = ["sys-locale"]
shell-open-api = ["open", "regex", "tauri-macros/shell-scope"]
fs-extract-api = ["zip"]
reqwest-client = ["http-api"]
reqwest-native-tls-vendored = ["native-tls-vendored"]
native-tls-vendored = ["reqwest/native-tls-vendored"]
process-command-api = ["shared_child", "os_pipe"]
http-api = [ "reqwest", "bytes", "indexmap" ]
http-multipart = [ "reqwest/multipart" ]
os-api = [ "sys-locale" ]
shell-open-api = [ "open", "regex", "tauri-macros/shell-scope" ]
fs-extract-api = [ "zip" ]
reqwest-client = [ "http-api" ]
reqwest-native-tls-vendored = [ "native-tls-vendored" ]
native-tls-vendored = [ "reqwest/native-tls-vendored" ]
process-command-api = [ "shared_child", "os_pipe" ]
global-shortcut = [
"tauri-runtime/global-shortcut",
"tauri-runtime-wry/global-shortcut",
"tauri-runtime-wry/global-shortcut"
]
clipboard = ["tauri-runtime/clipboard", "tauri-runtime-wry/clipboard"]
dialog = ["rfd"]
notification = ["notify-rust", "nix"]
cli = ["clap"]
system-tray = ["tauri-runtime/system-tray", "tauri-runtime-wry/system-tray"]
devtools = ["tauri-runtime/devtools", "tauri-runtime-wry/devtools"]
dox = ["tauri-runtime-wry/dox"]
clipboard = [ "tauri-runtime/clipboard", "tauri-runtime-wry/clipboard" ]
dialog = [ "rfd" ]
notification = [ "notify-rust", "nix" ]
cli = [ "clap" ]
system-tray = [ "tauri-runtime/system-tray", "tauri-runtime-wry/system-tray" ]
devtools = [ "tauri-runtime/devtools", "tauri-runtime-wry/devtools" ]
dox = [ "tauri-runtime-wry/dox" ]
macos-private-api = [
"tauri-runtime/macos-private-api",
"tauri-runtime-wry/macos-private-api",
"tauri-runtime-wry/macos-private-api"
]
windows7-compat = ["win7-notifications"]
window-data-url = ["data-url"]
windows7-compat = [ "win7-notifications" ]
window-data-url = [ "data-url" ]
api-all = [
"clipboard-all",
"dialog-all",
@@ -212,17 +198,17 @@ api-all = [
"protocol-all",
"shell-all",
"window-all",
"app-all",
"app-all"
]
clipboard-all = ["clipboard-write-text", "clipboard-read-text"]
clipboard-read-text = ["clipboard"]
clipboard-write-text = ["clipboard"]
dialog-all = ["dialog-open", "dialog-save", "dialog-message", "dialog-ask"]
dialog-ask = ["dialog"]
dialog-confirm = ["dialog"]
dialog-message = ["dialog"]
dialog-open = ["dialog"]
dialog-save = ["dialog"]
clipboard-all = [ "clipboard-write-text", "clipboard-read-text" ]
clipboard-read-text = [ "clipboard" ]
clipboard-write-text = [ "clipboard" ]
dialog-all = [ "dialog-open", "dialog-save", "dialog-message", "dialog-ask" ]
dialog-ask = [ "dialog" ]
dialog-confirm = [ "dialog" ]
dialog-message = [ "dialog" ]
dialog-open = [ "dialog" ]
dialog-save = [ "dialog" ]
fs-all = [
"fs-copy-file",
"fs-create-dir",
@@ -232,35 +218,33 @@ fs-all = [
"fs-remove-dir",
"fs-remove-file",
"fs-rename-file",
"fs-write-file",
"fs-write-file"
]
fs-copy-file = []
fs-create-dir = []
fs-exists = []
fs-read-file = []
fs-read-dir = []
fs-remove-dir = []
fs-remove-file = []
fs-rename-file = []
fs-write-file = []
global-shortcut-all = ["global-shortcut"]
http-all = ["http-request"]
http-request = ["http-api"]
notification-all = ["notification", "dialog-ask"]
os-all = ["os_info", "os-api"]
path-all = []
process-all = ["process-relaunch", "process-exit"]
process-exit = []
process-relaunch = []
process-relaunch-dangerous-allow-symlink-macos = [
"tauri-utils/process-relaunch-dangerous-allow-symlink-macos",
]
protocol-all = ["protocol-asset"]
protocol-asset = []
shell-all = ["shell-execute", "shell-sidecar", "shell-open"]
shell-execute = ["process-command-api", "regex", "tauri-macros/shell-scope"]
shell-sidecar = ["process-command-api", "regex", "tauri-macros/shell-scope"]
shell-open = ["shell-open-api"]
fs-copy-file = [ ]
fs-create-dir = [ ]
fs-exists = [ ]
fs-read-file = [ ]
fs-read-dir = [ ]
fs-remove-dir = [ ]
fs-remove-file = [ ]
fs-rename-file = [ ]
fs-write-file = [ ]
global-shortcut-all = [ "global-shortcut" ]
http-all = [ "http-request" ]
http-request = [ "http-api" ]
notification-all = [ "notification", "dialog-ask" ]
os-all = [ "os_info", "os-api" ]
path-all = [ ]
process-all = [ "process-relaunch", "process-exit" ]
process-exit = [ ]
process-relaunch = [ ]
process-relaunch-dangerous-allow-symlink-macos = [ "tauri-utils/process-relaunch-dangerous-allow-symlink-macos" ]
protocol-all = [ "protocol-asset" ]
protocol-asset = [ ]
shell-all = [ "shell-execute", "shell-sidecar", "shell-open" ]
shell-execute = [ "process-command-api", "regex", "tauri-macros/shell-scope" ]
shell-sidecar = [ "process-command-api", "regex", "tauri-macros/shell-scope" ]
shell-open = [ "shell-open-api" ]
window-all = [
"window-create",
"window-center",
@@ -294,48 +278,48 @@ window-all = [
"window-set-cursor-position",
"window-set-ignore-cursor-events",
"window-start-dragging",
"window-print",
"window-print"
]
window-create = []
window-center = []
window-request-user-attention = []
window-set-resizable = []
window-set-maximizable = []
window-set-minimizable = []
window-set-closable = []
window-set-title = []
window-maximize = []
window-unmaximize = []
window-minimize = []
window-unminimize = []
window-show = []
window-hide = []
window-close = []
window-set-decorations = []
window-set-always-on-top = []
window-set-content-protected = []
window-set-size = []
window-set-min-size = []
window-set-max-size = []
window-set-position = []
window-set-fullscreen = []
window-set-focus = []
window-set-icon = []
window-set-skip-taskbar = []
window-set-cursor-grab = []
window-set-cursor-visible = []
window-set-cursor-icon = []
window-set-cursor-position = []
window-set-ignore-cursor-events = []
window-start-dragging = []
window-print = []
app-all = ["app-show", "app-hide"]
app-show = []
app-hide = []
config-json5 = ["tauri-macros/config-json5"]
config-toml = ["tauri-macros/config-toml"]
icon-ico = ["infer", "ico"]
icon-png = ["infer", "png"]
window-create = [ ]
window-center = [ ]
window-request-user-attention = [ ]
window-set-resizable = [ ]
window-set-maximizable = [ ]
window-set-minimizable = [ ]
window-set-closable = [ ]
window-set-title = [ ]
window-maximize = [ ]
window-unmaximize = [ ]
window-minimize = [ ]
window-unminimize = [ ]
window-show = [ ]
window-hide = [ ]
window-close = [ ]
window-set-decorations = [ ]
window-set-always-on-top = [ ]
window-set-content-protected = [ ]
window-set-size = [ ]
window-set-min-size = [ ]
window-set-max-size = [ ]
window-set-position = [ ]
window-set-fullscreen = [ ]
window-set-focus = [ ]
window-set-icon = [ ]
window-set-skip-taskbar = [ ]
window-set-cursor-grab = [ ]
window-set-cursor-visible = [ ]
window-set-cursor-icon = [ ]
window-set-cursor-position = [ ]
window-set-ignore-cursor-events = [ ]
window-start-dragging = [ ]
window-print = [ ]
app-all = [ "app-show", "app-hide" ]
app-show = [ ]
app-hide = [ ]
config-json5 = [ "tauri-macros/config-json5" ]
config-toml = [ "tauri-macros/config-toml" ]
icon-ico = [ "infer", "ico" ]
icon-png = [ "infer", "png" ]
[[example]]
name = "commands"
@@ -348,7 +332,7 @@ path = "../../examples/helloworld/main.rs"
[[example]]
name = "multiwindow"
path = "../../examples/multiwindow/main.rs"
required-features = ["window-create"]
required-features = [ "window-create" ]
[[example]]
name = "parent-window"
@@ -357,7 +341,7 @@ path = "../../examples/parent-window/main.rs"
[[example]]
name = "navigation"
path = "../../examples/navigation/main.rs"
required-features = ["window-create"]
required-features = [ "window-create" ]
[[example]]
name = "splashscreen"
@@ -374,4 +358,4 @@ path = "../../examples/streaming/main.rs"
[[example]]
name = "isolation"
path = "../../examples/isolation/main.rs"
required-features = ["isolation"]
required-features = [ "isolation" ]

File diff suppressed because one or more lines are too long

View File

@@ -102,7 +102,8 @@
'click',
function (e) {
let target = e.target
const baseTarget = document.querySelector('head base')?.target
const base = document.querySelector('head base')
const baseTarget = base ? base.target : null
while (target != null) {
if (target.matches('a')) {
if (

View File

@@ -150,15 +150,17 @@ impl Cmd {
path: String,
ext: Option<String>,
) -> super::Result<String> {
match Path::new(&path)
.file_name()
.and_then(std::ffi::OsStr::to_str)
{
Some(p) => Ok(if let Some(ext) = ext {
p.replace(ext.as_str(), "")
} else {
p.to_string()
}),
let file_name = Path::new(&path).file_name().map(|f| f.to_string_lossy());
match file_name {
Some(p) => {
let maybe_stripped = if let Some(ext) = ext {
p.strip_suffix(&ext).unwrap_or(&p).to_string()
} else {
p.to_string()
};
Ok(maybe_stripped)
}
None => Err(crate::error::into_anyhow(crate::api::Error::Path(
"Couldn't get the basename".into(),
))),

View File

@@ -1,5 +1,12 @@
# Changelog
## \[1.5.4]
### Bug Fixes
- [`e3b6d38d2`](https://www.github.com/tauri-apps/tauri/commit/e3b6d38d26d27b292f98d6c0e8603a15265a5b43)([#9166](https://www.github.com/tauri-apps/tauri/pull/9166)) Fix `basename(path, 'ext')` JS API when removing all occurances of `ext` where it should only remove the last one.
- [`705da977a`](https://www.github.com/tauri-apps/tauri/commit/705da977a9c941a4b2d90219b34925498f507ab2)([#9529](https://www.github.com/tauri-apps/tauri/pull/9529)) Do not use JS optional chaining to prevent script errors on older webviews such as macOS 10.14.
## \[1.5.3]
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/api",
"version": "1.5.3",
"version": "1.5.4",
"description": "Tauri API definitions",
"funding": {
"type": "opencollective",

View File

@@ -726,9 +726,9 @@ async function join(...paths: string[]): Promise<string> {
* Returns the directory name of a `path`. Trailing directory separators are ignored.
* @example
* ```typescript
* import { dirname, appDataDir } from '@tauri-apps/api/path';
* const appDataDirPath = await appDataDir();
* const dir = await dirname(appDataDirPath);
* import { dirname } from '@tauri-apps/api/path';
* const dir = await dirname('/path/to/somedir/');
* assert(dir === 'somedir');
* ```
*
* @since 1.0.0
@@ -747,10 +747,9 @@ async function dirname(path: string): Promise<string> {
* Returns the extension of the `path`.
* @example
* ```typescript
* import { extname, resolveResource } from '@tauri-apps/api/path';
* const resourcePath = await resolveResource('app.conf');
* const ext = await extname(resourcePath);
* assert(ext === 'conf');
* import { extname } from '@tauri-apps/api/path';
* const ext = await extname('/path/to/file.html');
* assert(ext === 'html');
* ```
*
* @since 1.0.0
@@ -769,9 +768,8 @@ async function extname(path: string): Promise<string> {
* Returns the last portion of a `path`. Trailing directory separators are ignored.
* @example
* ```typescript
* import { basename, resolveResource } from '@tauri-apps/api/path';
* const resourcePath = await resolveResource('app.conf');
* const base = await basename(resourcePath);
* import { basename } from '@tauri-apps/api/path';
* const base = await basename('path/to/app.conf');
* assert(base === 'app.conf');
* ```
*

View File

@@ -1,6 +1,6 @@
{
"compilerOptions": {
"target": "es2021",
"target": "es2019",
"module": "esnext",
"moduleResolution": "bundler",
"skipLibCheck": true,

View File

@@ -1,5 +1,19 @@
# Changelog
## \[1.5.2]
### Bug Fixes
- [`dbe81b841`](https://www.github.com/tauri-apps/tauri/commit/dbe81b84104bff29bc98ecdb89934a3c6bb68150)([#9282](https://www.github.com/tauri-apps/tauri/pull/9282)) The NSIS uninstaller now won't mindlessly try to remove the whole installation folder when the "Remove application data" checkbox was ticked. This prevents data loss when the app was installed in a folder which contained other files.
- [`017861e4d`](https://www.github.com/tauri-apps/tauri/commit/017861e4d59f89181aa4d3c35c32d78f14ff0201)([#9281](https://www.github.com/tauri-apps/tauri/pull/9281)) Fixed an issue causing the NSIS bundler to install resources incorrectly when the installer was built on a non-Windows system.
## \[1.5.1]
### Bug Fixes
- [`516386158`](https://www.github.com/tauri-apps/tauri/commit/5163861588b229fe2e13e61bf65fbf5b88743bb3)([#9040](https://www.github.com/tauri-apps/tauri/pull/9040)) On Windows, fix building WiX installer when resources contains an XML charcter that should be escaped.
- [`97a05145f`](https://www.github.com/tauri-apps/tauri/commit/97a05145fbb24533526eba6589594f03046e11df)([#9119](https://www.github.com/tauri-apps/tauri/pull/9119)) Fix compilation error due to dependency on unstable features of `log` crate.
## \[1.5.0]
### New Features

View File

@@ -1,42 +1,38 @@
workspace = {}
workspace = { }
[package]
name = "tauri-bundler"
version = "1.5.0"
version = "1.5.2"
authors = [
"George Burton <burtonageo@gmail.com>",
"Tauri Programme within The Commons Conservancy",
"Tauri Programme within The Commons Conservancy"
]
categories = ["command-line-utilities", "development-tools::cargo-plugins"]
categories = [ "command-line-utilities", "development-tools::cargo-plugins" ]
license = "Apache-2.0 OR MIT"
keywords = ["bundle", "cargo", "tauri"]
keywords = [ "bundle", "cargo", "tauri" ]
repository = "https://github.com/tauri-apps/tauri"
description = "Wrap rust executables in OS-specific app bundles for Tauri"
edition = "2021"
rust-version = "1.60"
exclude = ["CHANGELOG.md", "/target", "rustfmt.toml"]
exclude = [ "CHANGELOG.md", "/target", "rustfmt.toml" ]
[dependencies]
tauri-utils = { version = "1.5.3", path = "../../core/tauri-utils", features = [
"resources",
] }
tauri-utils = { version = "1.5.3", path = "../../core/tauri-utils", features = [ "resources" ] }
image = "0.24.7"
flate2 = "1.0"
anyhow = "1.0"
thiserror = "1.0"
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde = { version = "1.0", features = [ "derive" ] }
strsim = "0.10.0"
tar = "0.4.40"
walkdir = "2"
handlebars = "4.5"
tempfile = "3.8.1"
log = { version = "0.4.20", features = ["kv_unstable"] }
log = { version = "0.4.21", features = [ "kv" ] }
dirs-next = "2.0"
os_pipe = "1"
ureq = { version = "2.9.1", default-features = false, features = [
"socks-proxy",
] }
ureq = { version = "2.9.1", default-features = false, features = [ "socks-proxy" ] }
native-tls = { version = "0.2", optional = true }
hex = "0.4"
semver = "1"
@@ -46,24 +42,27 @@ zip = "0.6"
dunce = "1"
[target."cfg(target_os = \"windows\")".dependencies]
uuid = { version = "1", features = ["v4", "v5"] }
uuid = { version = "1", features = [ "v4", "v5" ] }
winreg = "0.51"
glob = "0.3"
[target."cfg(target_os = \"windows\")".dependencies.windows-sys]
version = "0.48"
features = ["Win32_System_SystemInformation", "Win32_System_Diagnostics_Debug"]
[target."cfg(target_os = \"windows\")".dependencies.windows-sys]
version = "0.48"
features = [
"Win32_System_SystemInformation",
"Win32_System_Diagnostics_Debug"
]
[target."cfg(target_os = \"macos\")".dependencies]
icns = { package = "tauri-icns", version = "0.1" }
time = { version = "0.3", features = ["formatting"] }
time = { version = "0.3", features = [ "formatting" ] }
plist = "1"
[target."cfg(any(target_os = \"macos\", target_os = \"windows\"))".dependencies]
regex = "1"
[target."cfg(target_os = \"linux\")".dependencies]
heck = "0.4"
heck = "0.5"
ar = "0.9.0"
md5 = "0.7.0"
@@ -72,7 +71,7 @@ name = "tauri_bundler"
path = "src/lib.rs"
[features]
default = ["rustls"]
native-tls = ["ureq/native-tls"]
native-tls-vendored = ["native-tls", "native-tls/vendored"]
rustls = ["ureq/tls"]
default = [ "rustls" ]
native-tls = [ "ureq/native-tls" ]
native-tls-vendored = [ "native-tls", "native-tls/vendored" ]
rustls = [ "ureq/tls" ]

View File

@@ -16,7 +16,7 @@ use crate::bundle::{
},
};
use anyhow::{bail, Context};
use handlebars::{to_json, Handlebars};
use handlebars::{html_escape, to_json, Handlebars};
use log::info;
use regex::Regex;
use serde::{Deserialize, Serialize};
@@ -122,7 +122,7 @@ impl ResourceDirectory {
r#"<Component Id="{id}" Guid="{guid}" Win64="$(var.Win64)" KeyPath="yes"><File Id="PathFile_{id}" Source="{path}" /></Component>"#,
id = file.id,
guid = file.guid,
path = file.path.display()
path = html_escape(&file.path.display().to_string())
).as_str()
);
}
@@ -140,7 +140,7 @@ impl ResourceDirectory {
format!(
r#"<Directory Id="I{id}" Name="{name}">{files}{directories}</Directory>"#,
id = Uuid::new_v4().as_simple(),
name = self.name,
name = html_escape(&self.name),
files = files,
directories = directories,
)

View File

@@ -339,6 +339,31 @@ fn build_nsis_app_installer(
resources_ancestors.sort_by_key(|p| std::cmp::Reverse(p.components().count()));
resources_ancestors.pop(); // Last one is always ""
// We need to convert / to \ for nsis to move the files into the correct dirs
#[cfg(not(target_os = "windows"))]
let resources: ResourcesMap = resources
.into_iter()
.map(|(r, p)| {
(
r,
(
p.0.display().to_string().replace('/', "\\").into(),
p.1.display().to_string().replace('/', "\\").into(),
),
)
})
.collect();
#[cfg(not(target_os = "windows"))]
let resources_ancestors: Vec<PathBuf> = resources_ancestors
.into_iter()
.map(|p| p.display().to_string().replace('/', "\\").into())
.collect();
#[cfg(not(target_os = "windows"))]
let resources_dirs: Vec<PathBuf> = resources_dirs
.into_iter()
.map(|p| p.display().to_string().replace('/', "\\").into())
.collect();
data.insert("resources_ancestors", to_json(resources_ancestors));
data.insert("resources_dirs", to_json(resources_dirs));
data.insert("resources", to_json(&resources));

View File

@@ -641,14 +641,10 @@ Section Uninstall
; Delete uninstaller
Delete "$INSTDIR\uninstall.exe"
${If} $DeleteAppDataCheckboxState == 1
RMDir /R /REBOOTOK "$INSTDIR"
${Else}
{{#each resources_ancestors}}
RMDir /REBOOTOK "$INSTDIR\\{{this}}"
{{/each}}
RMDir "$INSTDIR"
${EndIf}
{{#each resources_ancestors}}
RMDir /REBOOTOK "$INSTDIR\\{{this}}"
{{/each}}
RMDir "$INSTDIR"
; Remove start menu shortcut
!insertmacro MUI_STARTMENU_GETFOLDER Application $AppStartMenuFolder

View File

@@ -1,5 +1,30 @@
# Changelog
## \[1.5.12]
### Bug Fixes
- [`1675e41f0`](https://www.github.com/tauri-apps/tauri/commit/1675e41f05c77d517890f59fddcf536744e6a0ad)([#9481](https://www.github.com/tauri-apps/tauri/pull/9481)) Fixed an issue with the CLI renaming the main executable in kebab-case when building for Windows on a non-Windows system which caused the bundler step to fail.
- [`9dd67abd9`](https://www.github.com/tauri-apps/tauri/commit/9dd67abd93e96097fc169404b70e729e46c3cd64)([#9298](https://www.github.com/tauri-apps/tauri/pull/9298)) Upgrade `heck` to v0.5 to better support Chinese and Japanese product name, because Chinese do not have word separation.
- [`f9638b631`](https://www.github.com/tauri-apps/tauri/commit/f9638b6315668ced871f242224f001f474262f85)([#9491](https://www.github.com/tauri-apps/tauri/pull/9491)) Fixed an issue that caused the CLI to rename app binaries incorrectly if the product name contained a `.` which resulted in the bundling step to fail.
- [`77cc49ac3`](https://www.github.com/tauri-apps/tauri/commit/77cc49ac3cd27368b3be4f67e35ae021acee4c92)([#9188](https://www.github.com/tauri-apps/tauri/pull/9188)) Fixed an issue causing the `build.runner` and `build.features` configs to not take effect.
- [`aeddc40b9`](https://www.github.com/tauri-apps/tauri/commit/aeddc40b9e461bc118382ae62431d39e29f25915)([#9411](https://www.github.com/tauri-apps/tauri/pull/9411)) Fix `tauri info` crashing when Node.js is not installed.
### Dependencies
- Upgraded to `tauri-bundler@1.5.2`
## \[1.5.11]
### Bug Fixes
- [`97a05145f`](https://www.github.com/tauri-apps/tauri/commit/97a05145fbb24533526eba6589594f03046e11df)([#9119](https://www.github.com/tauri-apps/tauri/pull/9119)) Fix compilation error due to dependency on unstable features of `log` crate.
- [`b15948b11`](https://www.github.com/tauri-apps/tauri/commit/b15948b11c0e362eea7ef57a4606f15f7dbd886b)([#8903](https://www.github.com/tauri-apps/tauri/pull/8903)) Fix `.taurignore` failing to ignore in some cases.
### Dependencies
- Upgraded to `tauri-bundler@1.5.1`
## \[1.5.10]
### New Features

95
tooling/cli/Cargo.lock generated
View File

@@ -158,7 +158,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -436,10 +436,10 @@ version = "4.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
dependencies = [
"heck",
"heck 0.4.1",
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -629,7 +629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -639,7 +639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
dependencies = [
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -682,7 +682,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -693,7 +693,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [
"darling_core",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -839,9 +839,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "erased-serde"
version = "0.3.31"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
checksum = "388979d208a049ffdfb22fa33b9c81942215b940910bccfe258caeb25d125cb3"
dependencies = [
"serde",
]
@@ -1183,9 +1183,12 @@ name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
@@ -1665,9 +1668,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.20"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
dependencies = [
"value-bag",
]
@@ -2044,7 +2047,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -2198,7 +2201,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -2316,7 +2319,7 @@ dependencies = [
"phf_shared 0.11.2",
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -2363,7 +2366,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -2449,9 +2452,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
version = "1.0.70"
version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
dependencies = [
"unicode-ident",
]
@@ -2476,9 +2479,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.33"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@@ -2910,9 +2913,9 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
[[package]]
name = "serde"
version = "1.0.193"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
@@ -2929,13 +2932,13 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.193"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -3026,7 +3029,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -3297,9 +3300,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.39"
version = "2.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
dependencies = [
"proc-macro2",
"quote",
@@ -3346,7 +3349,7 @@ dependencies = [
[[package]]
name = "tauri-bundler"
version = "1.5.0"
version = "1.5.2"
dependencies = [
"anyhow",
"ar",
@@ -3355,7 +3358,7 @@ dependencies = [
"flate2",
"glob",
"handlebars",
"heck",
"heck 0.5.0",
"hex",
"image",
"log",
@@ -3386,7 +3389,7 @@ dependencies = [
[[package]]
name = "tauri-cli"
version = "1.5.10"
version = "1.5.12"
dependencies = [
"anyhow",
"axum",
@@ -3401,7 +3404,7 @@ dependencies = [
"env_logger",
"glob",
"handlebars",
"heck",
"heck 0.5.0",
"html5ever",
"ignore",
"image",
@@ -3467,7 +3470,7 @@ dependencies = [
"dunce",
"getrandom 0.2.11",
"glob",
"heck",
"heck 0.5.0",
"html5ever",
"infer",
"json-patch",
@@ -3545,7 +3548,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -3628,7 +3631,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]
@@ -3913,9 +3916,9 @@ dependencies = [
[[package]]
name = "value-bag"
version = "1.4.2"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
checksum = "126e423afe2dd9ac52142e7e9d5ce4135d7e13776c529d27fd6bc49f19e3280b"
dependencies = [
"value-bag-serde1",
"value-bag-sval2",
@@ -3923,9 +3926,9 @@ dependencies = [
[[package]]
name = "value-bag-serde1"
version = "1.4.2"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07ba39dc791ecb35baad371a3fc04c6eab688c04937d2e0ac6c22b612c0357bf"
checksum = "ede32f342edc46e84bd41fd394ce2192b553de11725dd83b6223150610c21b44"
dependencies = [
"erased-serde",
"serde",
@@ -3934,9 +3937,9 @@ dependencies = [
[[package]]
name = "value-bag-sval2"
version = "1.4.2"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3e06c10810a57bbf45778d023d432a50a1daa7d185991ae06bcfb6c654d0945"
checksum = "0024e44b25144c2f4d0ed35d39688e0090d57753e20fef38d08e0c1a40bdf23d"
dependencies = [
"sval",
"sval_buffer",
@@ -4011,7 +4014,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
"wasm-bindgen-shared",
]
@@ -4045,7 +4048,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -4380,7 +4383,7 @@ checksum = "e1012d89e3acb79fad7a799ce96866cfb8098b74638465ea1b1533d35900ca90"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.39",
"syn 2.0.52",
]
[[package]]

View File

@@ -1,13 +1,13 @@
[workspace]
members = ["node"]
members = [ "node" ]
[package]
name = "tauri-cli"
version = "1.5.10"
authors = ["Tauri Programme within The Commons Conservancy"]
version = "1.5.12"
authors = [ "Tauri Programme within The Commons Conservancy" ]
edition = "2021"
rust-version = "1.60"
categories = ["gui", "web-programming"]
categories = [ "gui", "web-programming" ]
license = "Apache-2.0 OR MIT"
homepage = "https://tauri.app"
repository = "https://github.com/tauri-apps/tauri"
@@ -20,7 +20,7 @@ include = [
"*.rs",
"tauri.gitignore",
"tauri-dev-watcher.gitignore",
"LICENSE*",
"LICENSE*"
]
[package.metadata.binstall]
@@ -40,63 +40,52 @@ path = "src/main.rs"
[dependencies]
clap_complete = "4"
clap = { version = "4.4", features = ["derive"] }
clap = { version = "4.4", features = [ "derive" ] }
anyhow = "1.0"
tauri-bundler = { version = "1.5.0", path = "../bundler", default-features = false }
tauri-bundler = { version = "1.5.2", path = "../bundler", default-features = false }
colored = "2.0"
once_cell = "1"
serde = { version = "1.0", features = ["derive"] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
notify = "6.1"
notify-debouncer-mini = "0.4"
shared_child = "1.0"
toml_edit = "0.21"
json-patch = "1.2"
tauri-utils = { version = "1.5.3", path = "../../core/tauri-utils", features = [
"isolation",
"schema",
"config-json5",
"config-toml",
] }
tauri-utils = { version = "1.5.3", path = "../../core/tauri-utils", features = [ "isolation", "schema", "config-json5", "config-toml" ] }
toml = "0.8"
jsonschema = "0.17"
handlebars = "4.4"
include_dir = "0.7"
minisign = "=0.7.3"
base64 = "0.21.5"
ureq = { version = "2.9.1", default-features = false, features = ["gzip"] }
ureq = { version = "2.9.1", default-features = false, features = [ "gzip" ] }
os_info = "3"
semver = "1.0"
regex = "1.10.2"
unicode-width = "0.1"
zeroize = "1.6"
heck = { version = "0.4", features = ["unicode"] }
heck = "0.5"
dialoguer = "0.11"
url = { version = "2.4", features = ["serde"] }
url = { version = "2.4", features = [ "serde" ] }
os_pipe = "1"
ignore = "0.4"
ctrlc = "3.4"
log = { version = "0.4.20", features = ["kv_unstable", "kv_unstable_std"] }
log = { version = "0.4.21", features = [ "kv", "kv_std" ] }
env_logger = "0.10.0"
icns = { package = "tauri-icns", version = "0.1" }
image = { version = "0.24", default-features = false, features = ["ico"] }
axum = { version = "0.6.20", features = ["ws"] }
image = { version = "0.24", default-features = false, features = [ "ico" ] }
axum = { version = "0.6.20", features = [ "ws" ] }
html5ever = "0.26"
kuchiki = { package = "kuchikiki", version = "0.8" }
tokio = { version = "1", features = ["macros", "sync"] }
tokio = { version = "1", features = [ "macros", "sync" ] }
common-path = "1"
serde-value = "0.7.0"
itertools = "0.11"
glob = "0.3"
[target."cfg(windows)".dependencies]
winapi = { version = "0.3", features = [
"handleapi",
"processenv",
"winbase",
"wincon",
"winnt",
] }
winapi = { version = "0.3", features = [ "handleapi", "processenv", "winbase", "wincon", "winnt" ] }
cc = "1"
[target."cfg(unix)".dependencies]
@@ -106,7 +95,7 @@ libc = "0.2"
lto = true
[features]
default = ["rustls"]
native-tls = ["tauri-bundler/native-tls", "ureq/native-tls"]
native-tls-vendored = ["native-tls", "tauri-bundler/native-tls-vendored"]
rustls = ["tauri-bundler/rustls", "ureq/tls"]
default = [ "rustls" ]
native-tls = [ "tauri-bundler/native-tls", "ureq/native-tls" ]
native-tls-vendored = [ "native-tls", "tauri-bundler/native-tls-vendored" ]
rustls = [ "tauri-bundler/rustls", "ureq/tls" ]

View File

@@ -1,8 +1,8 @@
{
"cli.js": {
"version": "1.5.10",
"version": "1.5.12",
"node": ">= 10.0.0"
},
"tauri": "1.6.0",
"tauri": "1.6.2",
"tauri-build": "1.5.1"
}

View File

@@ -1,5 +1,29 @@
# Changelog
## \[1.5.12]
### Bug Fixes
- [`1675e41f0`](https://www.github.com/tauri-apps/tauri/commit/1675e41f05c77d517890f59fddcf536744e6a0ad)([#9481](https://www.github.com/tauri-apps/tauri/pull/9481)) Fixed an issue with the CLI renaming the main executable in kebab-case when building for Windows on a non-Windows system which caused the bundler step to fail.
- [`9dd67abd9`](https://www.github.com/tauri-apps/tauri/commit/9dd67abd93e96097fc169404b70e729e46c3cd64)([#9298](https://www.github.com/tauri-apps/tauri/pull/9298)) Upgrade `heck` to v0.5 to better support Chinese and Japanese product name, because Chinese do not have word separation.
- [`f9638b631`](https://www.github.com/tauri-apps/tauri/commit/f9638b6315668ced871f242224f001f474262f85)([#9491](https://www.github.com/tauri-apps/tauri/pull/9491)) Fixed an issue that caused the CLI to rename app binaries incorrectly if the product name contained a `.` which resulted in the bundling step to fail.
- [`77cc49ac3`](https://www.github.com/tauri-apps/tauri/commit/77cc49ac3cd27368b3be4f67e35ae021acee4c92)([#9188](https://www.github.com/tauri-apps/tauri/pull/9188)) Fixed an issue causing the `build.runner` and `build.features` configs to not take effect.
- [`aeddc40b9`](https://www.github.com/tauri-apps/tauri/commit/aeddc40b9e461bc118382ae62431d39e29f25915)([#9411](https://www.github.com/tauri-apps/tauri/pull/9411)) Fix `tauri info` crashing when Node.js is not installed.
### Dependencies
- Upgraded to `tauri-cli@1.5.12`
## \[1.5.11]
### Bug Fixes
- [`b15948b11`](https://www.github.com/tauri-apps/tauri/commit/b15948b11c0e362eea7ef57a4606f15f7dbd886b)([#8903](https://www.github.com/tauri-apps/tauri/pull/8903)) Fix `.taurignore` failing to ignore in some cases.
### Dependencies
- Upgraded to `tauri-cli@1.5.11`
## \[1.5.10]
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/cli",
"version": "1.5.10",
"version": "1.5.12",
"description": "Command line interface for building Tauri apps",
"funding": {
"type": "opencollective",

View File

@@ -119,7 +119,6 @@ pub fn command(mut options: Options, verbosity: u8) -> Result<()> {
let mut interface = AppInterface::new(config_, options.target.clone())?;
let app_settings = interface.app_settings();
let interface_options = options.clone().into();
if let Some(before_build) = config_.build.before_build_command.clone() {
run_hook(
@@ -169,6 +168,7 @@ pub fn command(mut options: Options, verbosity: u8) -> Result<()> {
.get_or_insert(Vec::new())
.extend(config_.build.features.clone().unwrap_or_default());
let interface_options = options.clone().into();
let bin_path = app_settings.app_binary_path(&interface_options)?;
let out_dir = bin_path.parent().unwrap();

View File

@@ -40,16 +40,17 @@ pub fn items(metadata: &VersionMetadata) -> Vec<SectionItem> {
.unwrap_or_default()
.trim();
ActionResult::Description(format!("node: {}{}", v, {
let version = semver::Version::parse(v).unwrap();
let target_version = semver::Version::parse(node_target_ver.as_str()).unwrap();
if version < target_version {
format!(
" ({}, latest: {})",
"outdated".red(),
target_version.to_string().green()
)
} else {
"".into()
let version = semver::Version::parse(v);
let target_version = semver::Version::parse(node_target_ver.as_str());
match (version, target_version) {
(Ok(version), Ok(target_version)) if version < target_version => {
format!(
" ({}, latest: {})",
"outdated".red(),
target_version.to_string().green()
)
}
_ => "".into(),
}
}))
} else {

View File

@@ -263,7 +263,11 @@ struct IgnoreMatcher(Vec<Gitignore>);
impl IgnoreMatcher {
fn is_ignore(&self, path: &Path, is_dir: bool) -> bool {
for gitignore in &self.0 {
if gitignore.matched(path, is_dir).is_ignore() {
if path.starts_with(gitignore.path())
&& gitignore
.matched_path_or_any_parents(path, is_dir)
.is_ignore()
{
return true;
}
}
@@ -734,10 +738,12 @@ impl AppSettings for RustAppSettings {
BundleBinary::new(
format!(
"{}{}",
config
.package
.binary_name()
.unwrap_or_else(|| binary.name.clone()),
(if target_os == "windows" {
config.package.product_name.clone()
} else {
config.package.binary_name()
})
.unwrap_or_else(|| binary.name.clone()),
&binary_extension
),
true,
@@ -776,17 +782,23 @@ impl AppSettings for RustAppSettings {
match binaries.iter_mut().find(|bin| bin.name() == default_run) {
Some(bin) => {
if let Some(bin_name) = config.package.binary_name() {
bin.set_name(bin_name);
if target_os == "windows" {
bin.set_name(config.package.product_name.clone().unwrap());
} else {
bin.set_name(bin_name);
}
}
}
None => {
binaries.push(BundleBinary::new(
format!(
"{}{}",
config
.package
.binary_name()
.unwrap_or_else(|| default_run.to_string()),
(if target_os == "windows" {
config.package.product_name.clone()
} else {
config.package.binary_name()
})
.unwrap_or_else(|| default_run.to_string()),
&binary_extension
),
true,

View File

@@ -357,11 +357,12 @@ fn rename_app(
product_name.into()
};
let binary_extension = if target_os == "windows" { ".exe" } else { "" };
let product_path = bin_path
.parent()
.unwrap()
.join(product_name)
.with_extension(bin_path.extension().unwrap_or_default());
.join(format!("{product_name}{binary_extension}"));
rename(bin_path, &product_path).with_context(|| {
format!(

View File

@@ -129,7 +129,7 @@ where
.format(|f, record| {
let mut is_command_output = false;
if let Some(action) = record.key_values().get("action".into()) {
let action = action.to_str().unwrap();
let action = action.to_cow_str().unwrap();
is_command_output = action == "stdout" || action == "stderr";
if !is_command_output {
let mut action_style = f.style();