Compare commits

...

326 Commits

Author SHA1 Message Date
github-actions[bot]
0af553da72 Apply Version Updates From Current Changes (v1) (#7261)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-09-28 14:01:19 -03:00
Lucas Fernandes Nogueira
e9e68abb33 fix(ci): downgrade async-executor to 1.5.2 (#7911) 2023-09-28 10:48:52 -03:00
Lucas Fernandes Nogueira
c68fbfcb2d fix: Returns a warning instead of panicking if an AppImage is not mounted, closes #7736 (#7912)
Co-authored-by: Benjamin Demetz <50681275+Benji377@users.noreply.github.com>
2023-09-28 10:46:17 -03:00
Fabian-Lars
d1858de7a0 fix(cli): help output mixed up for private-key and private-key-path (#7901) 2023-09-26 14:41:32 -03:00
Fabian-Lars
9aa34ada57 feat(core): Allow http origin on Windows, fixes: #3007 (#7645)
Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-09-26 14:40:38 -03:00
Fabian-Lars
e8ff6b153e docs: change icon help output to ask for 1024px source icons, closes #7886 (#7896) 2023-09-25 14:44:27 +03:00
Trey Smith
5ecb46b341 fix: rpath missing from app, closes #7710 (#7773)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
fix: codesign doesn't sign frameworks or sidecar, closes #7690 (#7774)
2023-09-24 19:11:20 -03:00
Trey Smith
dcdbe3eb6c fix: codesign doesn't sign frameworks or sidecar, closes #7690 (#7774)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-09-15 12:09:10 -03:00
Trey Smith
2f8881c010 feat: add team_id option for apple notarization (#7775)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-09-15 08:30:27 -03:00
Lucas Fernandes Nogueira
995ffc629b fix(ci): recreate symlink so the integration tests works (#7833) 2023-09-13 21:55:47 -03:00
Lucas Fernandes Nogueira
b3ebe4de3c chore(config-schema): remove unused deps (#7824) 2023-09-12 23:55:27 +03:00
Amr Bashir
4bf1e85e6b fix(windows): respect focused: false for webview, closes #7519 (#7722)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
fix(windows): respect `focused: false` for webview, closes #7519
2023-09-11 17:00:06 -03:00
Davis Silverman
0b0bc81710 Extend context.rs to dynamically find the OUT_DIR for certain assets (#7534)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
2023-09-11 16:59:30 -03:00
Lucas Fernandes Nogueira
1945dec81f fix(ci): adjust downgrade crates step (#7812) 2023-09-11 15:30:37 -03:00
Jason Tsai
e3bfb01411 feat(nsis): support choosing compression algorithms, closes #7685 (#7776) 2023-09-07 18:45:15 +03:00
Lucas Fernandes Nogueira
dfbbca423b feat(bundler): try to find API key file for notarization, ref #7616 (#7771) 2023-09-07 10:01:12 -03:00
Jason Tsai
0797a002ca fix: use button property for data-tauri-drag-region mouse button detection, closes #7694 (#7746) 2023-09-07 09:55:47 -03:00
Amr Bashir
53ab2042fd refactor: remove unnecessary mutex (#7728) 2023-09-07 09:09:59 -03:00
martin frances
50878901ba chore: resolves a warning seen while running cargo update (#7753)
* chore: resolves a warning seen while running cargo update

warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest

* Now using resolver 2.
2023-09-05 14:28:33 +03:00
Amr Bashir
49beb67dab ci: fix clippy lints (#7721)
* ci: fix clippy lints

* more lints
2023-08-31 13:53:15 +03:00
Colin McDonnell
e152662687 feat: support Bun package manager (#7723)
* Support bun

* clippy
2023-08-31 02:48:36 +03:00
i-c-b
13279917d4 enhance(cli): Add Cargo Tauri CLI version to tauri info output (#7713)
* enhance(cli): Add Cargo Tauri CLI version to `tauri info` output

* Create enhance-cli-cargo-tauri-cli-version-info.md
2023-08-31 01:53:37 +03:00
Fabian-Lars
85112e7f8f ci: downgrade h2 and reqwest (#7717)
* ci: downgrade h2 to 0.3.20

* reqwest

* Update test-core.yml

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-08-30 20:43:01 +03:00
Amr Bashir
09f7f57eea chore(deps): update nsis_tuari_utils to 0.2.1 (#7711)
* chore(deps): update nsis_tuari_utils to 0.2.1

* Update .changes/nsis-kill-own-process.md
2023-08-30 15:49:47 +03:00
Fabian-Lars
f19c7fc5c3 ci: Update serde_with downgrade to match 3.3.0 (#7654) 2023-08-30 03:44:05 +03:00
Fabian-Lars
8c5fcf41e3 ci: Downgrade tokio to 1.29 and flate2 to 1.0.26 (#7646)
* ci: Downgrade tokio to 1.29

* downgrade flate2 too
2023-08-18 03:14:38 +03:00
Fabian-Lars
58d6b899e2 feat(api): Add append option to writeFile apis (#7636)
* feat(api): Add `append` option to writeFile apis.

* wording

* fmt

* Update .changes/fs-append-file.md


* clippeeeyyyy
2023-08-16 19:09:05 +03:00
Lucas Fernandes Nogueira
964d81ff01 refactor(bundler): switch to notarytool, closes #4300 (#7616) 2023-08-16 11:10:02 +09:00
Amr Bashir
a7777ff485 feat(bundler/NSIS): Add Bulgarian to supported NSIS languages. (#7624) (#7626)
* Create Bulgarian.nsh

* Update nsis.rs

* Create nsis-bulgarian.md

Co-authored-by: Angelo II <62988428+AngeloCore@users.noreply.github.com>
2023-08-16 11:09:45 +09:00
Amr Bashir
72a3d75e8f chore(deps): update nsis_tuari_utils to 0.2 (#7625) 2023-08-15 23:23:26 +03:00
Jet Li
ca977f4b87 fix(bundler/nsis): revert shell context change before deleting appdata, closes #7588 (#7591)
* fix(bundler/nsis): delete app data of current user when uninstall, closes #7588

* fix(bundler/nsis): delete app data of current user when uninstall, closes #7588

* Update .changes/fix-nsis-uninstall-delete-app-data.md

---------
2023-08-15 18:59:44 +03:00
Fabian-Lars
9308dee0a1 docs: Be more specific about plugin names in ipc scope (#7605) 2023-08-15 10:56:05 -03:00
Graeme McHale
10e362d098 feat: allow more flexible http requests in updater closes #7422 (#7432)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-10 07:23:52 -03:00
renovate[bot]
b420962377 chore(deps) Update Tauri API Definitions (1.x) (#7577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 07:22:45 -03:00
Lucas Fernandes Nogueira
cca5301b88 added missing futures-util (#7260) (#7565)
Co-authored-by: Simon Hyll <hyllsimon@gmail.com>
2023-08-09 17:39:27 -03:00
Isaac Cambron
eeb6be5422 feat(core): Manager::emit_filter and optimize serialization (#7512)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-08 16:57:30 -03:00
Amr Bashir
a6b52e44f2 fix(tauri-utils): include \n in io::read_line, closes #6388 (#6519)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
fix(tauri-utils): include `\n` in `io::read_line`, closes #6388
2023-08-08 16:43:19 -03:00
Alejandro González
9edebbba4e fix(driver): bump locked dependencies to fix build issue on Windows (#7475) 2023-08-08 15:46:32 -03:00
Fabian-Lars
cb1d4164e7 fix(bundler): sign the exe before the bundler step (#7487) 2023-08-08 15:16:00 -03:00
Amr Bashir
6c408b736c feat: add notification sound (#7269)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-08-08 15:09:04 -03:00
Lorenzo Lewis
c272e4afbf chore: remove typedoc integration (#7515)
Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>
2023-07-28 15:37:27 +03:00
Fabian-Lars
e374bc130d ci: lock tempfile and serde_with versions in CI (#7495)
* ci: lock tempfile and serde_with versions in CI

* Update test-core.yml
2023-07-25 18:25:14 +03:00
Jet Li
57f73f1b6a fix(bundler/nsis): use temp dir for webview2 installer, closes #7409 (#7486)
* fix(bundler/nsis): use temp dir for webview2 installer, closes #7409

* Update .changes/fix-nsis-webview2-installer-use-tempdir.md

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-07-25 17:29:59 +03:00
Alejandro González
2d35f937de fix(bundler): do not skip updater bundle target if only a macOS DMG is generated (#7481) 2023-07-24 09:27:11 -03:00
Lucas Fernandes Nogueira
4dd4893d7d feat: allow specifying a resource map, closes #5844 (#5950)
Co-authored-by: amrbashir <amr.bashir2015@gmail.com>
closes #5844
2023-07-13 18:28:52 -03:00
Dave Ceddia
ef962c43af fix(cli): handle symlinks in updater bundler, closes #3933 (#3934)
Co-authored-by: chip <chip@chip.sh>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2023-07-13 14:35:22 -03:00
Fabian-Lars
290e366ae9 fix(build): Copy wv2 runtime in dev, fixes #7373 (#7419) 2023-07-13 14:34:31 -03:00
Lucas Fernandes Nogueira
c98273387c feat(core): enhance readDir error message, closes #7379 (#7416) 2023-07-13 08:00:51 -07:00
Amr Bashir
2eab150563 feat(api/http): properly handle Files in Body.form, closes #7390 (#7394)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
closes #7390
2023-07-13 08:58:21 -03:00
Amr Bashir
fdaee9a5ce feat(core/plugin): add register_uri_scheme_protocol, closes #7330 (#7350)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
closes #7330
2023-07-12 16:49:32 -03:00
Amr Bashir
71a0240166 chore: remove hotkey.js script and replace var with const (#7343)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-07-12 08:44:26 -03:00
Amr Bashir
a2be88a21d refactor: remove bitness crate from bundler (#7405)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-07-12 07:38:25 -03:00
清茶
907425df55 feat(cli): check cwd for config file before traversing (#7395) 2023-07-11 18:29:15 +03:00
Amr Bashir
764968ab38 feat(bundler/nsis): sign uninstaller, closes #7348 (#7398)
* feat(bundler/nsis): sign uninstaller, closes #7348

* Update bundler-nsis-sign-uninstaller.md

* clippy
2023-07-11 15:54:59 +03:00
Amr Bashir
757e959eb2 feat: respect base tag's target attribute, closes #7285 (#7344)
* feat: respect `base` tag's `target` attribute, closes #7285

* Update core.js

* fix condition
2023-07-11 15:11:23 +03:00
Amr Bashir
fa7f9b77ab fix(core/updater): set max_redirections of 5, closes #7329 (#7341)
* fix(core/updater): set `max_redirections` of 5, closes #7329

* Update .changes/updater-redirect.md
2023-07-11 15:08:53 +03:00
Lucas Fernandes Nogueira
eeff1784e1 chore(deps): update unmaintained dependency from kuchiki to kuchikiki (#7359) (#7367)
Co-authored-by: Davide Baldo <davide@baldo.me>
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-07-11 19:19:13 +09:00
Amr Bashir
e05cd940d6 ci: fix audit workflow and add resolutions for vuln packages (#7392)
* ci: fix audit workflow and add resolutions for vuln packages

* revert rust audit changes
2023-07-11 00:25:18 +03:00
Amr Bashir
f6a13f6f23 ci: downgrade more crates is-terminal, colored and toml:0.7.6 (#7391)
* ci: downgrade more crates `is-terminal`, `colored` and `toml:0.7.6`

* downgrade all versions of toml and cargo_toml

* revert
2023-07-10 16:45:50 +03:00
luofei
eba8e1315e fix(bundler/nsis): fix installer incorrect copyright info (#7386)
Signed-off-by: luofei <luoffei@outlook.com>
2023-07-10 14:56:13 +03:00
Amr Bashir
6e36ebbf84 fix(nsis): set correct ShellVarContext for uninstaller, closes #7315 (#7342) 2023-07-10 14:46:15 +03:00
luofei
32218a6f8c fix(bundler/nsis): use uninstallstring to find wix installation (#7326)
* add change file

Signed-off-by: luofei <luoffei@outlook.com>

* fix(bundler/nsis): Check if the previous installation was done using WiX

Signed-off-by: luofei <luoffei@outlook.com>

* Update .changes/fix-nsis-previous-installation-method.md

---------

Signed-off-by: luofei <luoffei@outlook.com>
2023-07-08 04:26:40 +03:00
luofei
0ae53f4139 fix(bundler/nsis): fix error message appears even after successful uninstall, closes #7317 (#7361)
* fix(bundler/nsis): Uninstall the previous installation package

* Update .changes/fix-nsis-uninstall-previous-version.md

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-07-08 03:43:35 +03:00
Amr Bashir
46df2c9b91 fix(bundler): sort package types before bundling, closes #7349 (#7360)
fix(bundler): sort package types before bundling, closes #7349
2023-07-05 17:17:31 -03:00
Lucas Fernandes Nogueira
f4aedce96c fix(ci): adjust crate downgrades for test-core MSRV (#7346) 2023-07-03 15:42:34 -07:00
Lucas Fernandes Nogueira
539247aacf fix(ci): adjust downgrade crates version step on test-core workflow (#7309) 2023-06-30 09:04:09 -07:00
Fabian-Lars
dad4f54eec fix(cli): Disable version check, fixes #7273 (#7277) 2023-06-21 19:19:31 +08:00
Lucas Fernandes Nogueira
df6712cfb3 docs(core): fix panic section on manage documentation (#7251) 2023-06-21 07:50:41 -03:00
Raphii
1a3dcdb830 fix(core): fix nsis updater unable to launch installers requiring elevation, closes #7184 (#7185)
* Launch NSIS updaters requiring elevation from non-elevated process

* Add changes file

* remove detached process, use powershell

* Update updater-admin-launch-fix.md

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-06-19 18:11:16 +03:00
Amr Bashir
8c0166f459 ci: use toJSON (#7248) 2023-06-18 06:58:34 -03:00
Lucas Fernandes Nogueira
fdf68405a4 chore(ci): use a separate covector workflor for 1.x (#7243) 2023-06-18 06:57:37 -03:00
Lucas Fernandes Nogueira
be6f4319ff fix(ci): correctly set tag for tauri-cli release (#7246) 2023-06-17 19:14:12 -03:00
Lucas Fernandes Nogueira
2acc474ccb fix(ci): only check change tags on added or modified files (#7236) 2023-06-17 16:57:25 +03:00
github-actions[bot]
4b3d66c793 Apply Version Updates From Current Changes (v1) (#7234)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-06-17 10:45:52 -03:00
Lucas Fernandes Nogueira
49dbbbbcdf feat(ci): prepare CI for 1.x branch (#7231) 2023-06-17 09:41:22 -03:00
Amr Bashir
6afd34727f fix(core): revert #6680, remove default notification sound on Windows (#7229)
fix(core): revert #6680, remove default notification sound on Windows
2023-06-17 09:18:16 -03:00
Amr Bashir
066c09a6ea fix(core): fix require_literal_leading_dot flipped behavior (#7227) 2023-06-17 09:17:36 -03:00
Amr Bashir
28921cb8e8 ci: fix getting release id (#7207) 2023-06-15 08:36:05 -03:00
Lucas Fernandes Nogueira
2071265fea add to additionals (#7206) 2023-06-14 16:10:52 -07:00
Fabian-Lars
3fb3f11fc8 docs(api.js): fix since version for locale() (#7205) 2023-06-14 20:30:57 +03:00
github-actions[bot]
b7ae725c5e Apply Version Updates From Current Changes (#6901)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-06-14 12:59:28 -03:00
Lucas Fernandes Nogueira
bd96edd2b9 fix: bump macros, codegen and build crates with minor (#7203) 2023-06-14 12:09:11 -03:00
Lucas Fernandes Nogueira
aa94f049c1 fix(tests): adjust default bundle target for updater integration test (#7201) 2023-06-14 11:17:02 -03:00
Lucas Fernandes Nogueira
c1d36e4953 chore: remove duplicated crate in change file (#7198) 2023-06-14 15:05:44 +03:00
Fabian-Lars
4cfb686d2b fix(cli): Pin minisign to 0.7.3 to prevent issues with empty key passwords (#7197) 2023-06-14 08:00:28 -03:00
renovate[bot]
d5769b3bfb chore(deps) Update Rust crate log to 0.4.19 (#7193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 07:37:06 -03:00
renovate[bot]
066417d3f0 chore(deps) Update Rust crate log to 0.4.19 (#7194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 07:36:46 -03:00
renovate[bot]
29a287ee82 chore(deps) Update Tauri API Definitions to v5.59.11 (#7195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 07:36:26 -03:00
Amr Bashir
d75c1b829b fix(cli): warn about bundling updater target without appropriate targets, closes #7181 (#7189)
* fix(cli): warn about bundling updater target without appropriate targets, closes #7181

* change tags

* cleanup

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-06-14 02:14:35 +03:00
Lucas Fernandes Nogueira
696d77c3ce fix(core): global events now reaches window listeners, closes #4493 (#7163)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-06-13 08:05:58 -03:00
Fabian-Lars
5d85d0990c fix(core): Send updater status events when default dialog is enabled, closes #7128 (#7157) 2023-06-13 08:05:42 -03:00
Amr Bashir
076e1a81a5 fix(core): use u32 for js listeners ids, closes #7119 (#7159) 2023-06-07 17:54:04 -03:00
Amr Bashir
fc2e4083b0 ci: check for change tag (#7149)
* ci: check for change tag

* fix workflow

* Update .scripts/ci/check-change-tags.js

* feat: also check if tag is known

seems like covector does not check that so we can do it here for now

* remove push run

* only check changed files

* add missing tag

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
2023-06-07 16:32:36 +03:00
Lucas Fernandes Nogueira
1d99f8a3c2 feat(core): expose test utils (#4752) 2023-06-07 10:22:14 -03:00
renovate[bot]
d33672cffe chore(deps) Update Tauri Bundler (#7152)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-07 09:39:31 -03:00
renovate[bot]
ba6e5813e6 chore(deps) Update Tauri API Definitions (#7151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-07 09:38:27 -03:00
dependabot[bot]
a6da7ef8af chore(deps-dev): bump vite from 2.9.13 to 2.9.16 in /examples/api (#7138)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-06 14:06:29 -03:00
Fabian-Lars
db7c5fbf2e refactor(core): Remove attohttpc in favor of reqwest (#7143)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
2023-06-06 13:29:52 -03:00
Lucas Fernandes Nogueira
52474e479d feat(cli): enhance Cargo features injection, add tests (#7141) 2023-06-06 13:29:28 -03:00
Amr Bashir
b41b57ebb2 fix(core): avoid panics in global shortcut, closes #7105 (#7136) 2023-06-05 16:43:44 -03:00
Lucas Fernandes Nogueira
647800c563 refactor(cli): use rewrite manifest logic on table entry (#7134) 2023-06-05 14:38:26 -03:00
renovate[bot]
3a8bb4c153 chore(deps) Update Tauri JS CLI (#7093)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 10:06:45 -03:00
renovate[bot]
c2acf96306 chore(deps) Update Tauri API Definitions to v5.59.8 (#7091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:52:05 -03:00
renovate[bot]
f8bdc7be62 chore(deps) Update Rust crate log to 0.4.18 (#7090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:51:40 -03:00
Amr Bashir
0503eb69ce fix(core): account for data: uri when calculating origin, closes #7078 (#7133)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-06-05 09:47:21 -03:00
Reupen Shah
85e77fb797 fix: correct MIME type of .txt files (ref: #6762) (#7111)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-06-05 09:16:05 -03:00
fcfangcc
3327dd641d fix(bundler/macos): clean up .app bundle if only .dmg is enabled #7081 (#7116)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-06-05 08:49:37 -03:00
icedrocket
c596aaefcf fix(examples): make video fits within window (#7129) 2023-06-05 08:11:32 -03:00
Raphii
4d4b72ba38 Fix missing quote in Japanese NSIS language file. (#7086)
* Update Japanese.nsh

* Create nsis-japanese-fix.md

* Update .changes/nsis-japanese-fix.md

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-06-03 13:08:10 +02:00
Fabian-Lars
d7a0a2cd1a ci: Use correct native-tls feature flags for win32-arm64 cli, ref #7098 (#7107) 2023-06-02 19:04:48 +08:00
Fabian-Lars
0ddbb3a1dc feat(cli): Build the CLI for Windows ARM64, closes #7015 (#7098)
* feat(cli): Build the CLI for Windows ARM64

* lockfile
2023-06-01 11:04:14 +08:00
Lucas Fernandes Nogueira
3303041c92 chore(api): document new options from #6665 (#7072) 2023-05-27 04:39:37 -07:00
Lucas Fernandes Nogueira
27c5f364a8 fix(macros): use full path to Result to avoid issues with type aliases (#7071) 2023-05-27 04:37:19 -07:00
Amr Bashir
000104bc3b feat: add is_focused APIs, closes #6472 (#6530)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-26 13:37:28 -03:00
Kevin Yue
8fd9cfa1f2 fix(doc): correct the doc of content_protected() (#7065) 2023-05-26 09:23:57 -03:00
Bo
17d5a4f51f feat(core): early panic if the PNG icon is not RGBA, closes #6706 (#6712) 2023-05-26 15:26:21 +08:00
Pascal Sommer
d68a25e32e Improve compile errors for async commands without Result return type (#6124)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-26 01:04:30 -03:00
Lucas Fernandes Nogueira
154ccbe503 fix(tests): only download update when it is available (#7061) 2023-05-25 21:22:55 -03:00
Jonas Kruckenberg
6c5ade08d9 feat(cli.rs) Shell completions (#4537)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Simon Hyll <hyllsimon@gmail.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-05-25 11:34:37 -03:00
Amr Bashir
1b8001b8b8 fix(bundler/nsis): calculate accurate app size, closes #7056 (#7057) 2023-05-25 11:34:05 -03:00
Tomáš Diblík
c4d6fb4b1e feat(core): Ability to disable minimize/maximize/close native window's buttons, closes #2353 (#6665)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-05-24 17:23:32 -03:00
Lej77
65fd674f50 fix: sound for notifications on windows (fix #6652) (#6680) 2023-05-24 17:20:13 -03:00
Francis The Basilisk
35cd751adc feat(bundler): custom desktop file template, closes #5176 (#5180)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-24 16:04:54 -03:00
Amr Bashir
ff5e4dbbb0 fix(core): populate webview_attrs from config, closes #6794 (#6797)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-24 15:39:51 -03:00
Amr Bashir
df89ccc191 feat(nsis): implement passive mode, closes #6955 (#6998)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-24 14:16:12 -03:00
Amr Bashir
60334f9e02 feat(bundler/NSIS): uninstall previous wix if exist, closes #6859 (#6933) 2023-05-24 13:33:30 -03:00
renovate[bot]
0f707d2b53 chore(deps) Update Rust crate serde_with to v3 (#7048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 13:17:21 -03:00
Amr Bashir
2317913b71 fix(core): use safe_block_on (#7047)
fixes regression introduced in 45330e3819

ref: https://github.com/tauri-apps/tauri/issues/6375#issuecomment-1560063696
2023-05-24 05:07:31 +03:00
Amr Bashir
359058cecc feat(api): add locale function, closes #5939 (#5960) 2023-05-23 16:02:33 -03:00
Amr Bashir
45330e3819 fix(core): rewrite asset protocol streaming, closes #6375 (#6390)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-23 15:30:31 -03:00
Amr Bashir
17da87d3cd fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 (#7040)
* fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036

* cleanup

* lint

* return err instead of panic

* Update .changes/nsis-encoding.md [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-23 19:00:21 +03:00
Amr Bashir
8b9f6cf868 chore: add change tags for existing change files (#7041) 2023-05-23 18:56:47 +03:00
Amirhossein Akhlaghpour
4c39e46a3b feat: current_version feature (#7026)
* feat: reexport webview_verion

* chore: clippy problems

* fix: add .changes md file

* Update .changes/add-webview-version.md
2023-05-23 18:35:49 +03:00
Usman Rajab
43858a3197 feat(bundler/NSIS): Add Swedish to supported NSIS languages (#7038) 2023-05-23 17:41:40 +03:00
Amr Bashir
3cb7a3e642 fix(cli/devserver): inject autoreload into HTML only, closes #6997 (#7032) 2023-05-23 17:39:11 +03:00
Amr Bashir
baa581b814 ci: fix version-or-publish workflow (#7031)
* ci: fix version-or-publish workflow

* test syntax

* how about this?

* just use jq

* Delete test.js
2023-05-23 17:38:31 +03:00
Nathanael Rea
fb7ef8dacd fix(cli.js): detect node-20 binary (#6667)
* fix nodejs binary regex

* Update clijs-node-version-20.md
2023-05-23 01:09:49 +03:00
dependabot[bot]
1161b6788e chore(deps): bump h2 from 0.3.15 to 0.3.19 in /examples/api/src-tauri (#7030)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-22 16:35:19 -03:00
renovate[bot]
76714dc628 chore(deps) Update Tauri API Definitions (#6798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-22 16:34:55 -03:00
Amr Bashir
af93729031 fix: add missing file properties on Windows, closes #6676 (#6693)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
2023-05-22 16:34:33 -03:00
Amr Bashir
262776d8d8 docs(tauri-build): clarify common-controls-v6 dependency, closes #6732 (#6736) 2023-05-22 15:07:08 -03:00
renovate[bot]
86d3c0cc0f chore(deps) Update Tauri CLI (major) (#6688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-22 14:22:46 -03:00
Lucas Fernandes Nogueira
a541820aa8 fix(cli): revert metadata.json field rename from #6795 (#7029) 2023-05-22 14:07:53 -03:00
renovate[bot]
0974ecccd6 chore(deps) Update Tauri Bundler (#6683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-22 14:06:16 -03:00
Amr Bashir
5ec6353a60 refactor: change package names to match published packages (#6795)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-05-22 12:52:44 -03:00
renovate[bot]
9e67ec68ac chore(deps) Update dependency prettier to v2.8.8 (#6799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-22 11:41:03 -03:00
dependabot[bot]
ffd4db5ae4 chore(deps): bump enumflags2 from 0.7.5 to 0.7.7 in /examples/api/src-tauri (#6786)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-22 11:40:40 -03:00
Gökçe Merdun
ac183948d6 feat(bundler/NSIS): Add Turkish to supported NSIS languages (#7018) 2023-05-21 19:15:17 +03:00
Risto Stevcev
0032daf2a3 Docs: Added void linux to readme (#6711) 2023-05-21 11:29:09 -03:00
Amr Bashir
5eba069b1d docs: curate and document tauri's env vars (#6983)
* docs: curate and document tauri's env vars

* fill apple env vars

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-05-21 13:23:47 +03:00
yutotnh
2b487c9467 Fix typo (#7012)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-20 08:24:07 -03:00
Amr Bashir
b9eac96cdc ci: pin toml to 0.7.3 (#7011)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-20 07:52:21 -03:00
Lucas Fernandes Nogueira
1253bbf7ae fix(cli): correctly remove Cargo features (#7013) 2023-05-20 00:12:11 -03:00
Soumt
61e3ad89e9 feat(bundler/NSIS): Add Korean to supported NSIS languages (#7010)
* Feat: Add Korean language

* fmt
2023-05-20 01:49:20 +03:00
Simon Hyll
fc7f9ebada feat: adding copyright text to BrandingText (#7001) 2023-05-19 19:42:24 +08:00
Risto Stevcev
0302138f2f fix: updated appimage script to follow symlinks for /usr/lib* (fix: #6992) (#6996)
* Updated appimage script to follow symlinks for /usr/lib*

* Added appimage-follow-symlinks change file
2023-05-19 13:22:22 +08:00
Fabian-Lars
c7056d1b20 fix(cli): improve vs build tools detection (#6982)
* fix(cli): improve vs build tools detection

* clean up

* typos

* changefile

* patch instead of minor

* update vswhere

* use vswhere instead of custom logic. update wording

* sort and dedup manually
2023-05-18 22:47:28 +03:00
Amr Bashir
acc36fe117 feat(core): add option for require_literal_leading_dot, closes #6158 (#6969)
* feat(core): add option for `require_literal_leading_dot`, closes #6158

* change to `Option<bool>`

* fix to tokens impl

* Apply suggestions from code review

Co-authored-by: Simon Hyll <hyllsimon@gmail.com>

---------

Co-authored-by: Simon Hyll <hyllsimon@gmail.com>
2023-05-18 16:11:50 +03:00
Amr Bashir
cd3846c8ce feat(nsis): restart app after updating, closes #6955 (#6987)
* feat(nsis): restart app after updating, closes #6955

* Apply suggestions from code review
2023-05-18 16:11:31 +03:00
Amr Bashir
fd3b5a16b1 fix(cli): find correct binary when --profile is used, closes #6954 (#6979)
* fix(cli): find correct binary when `--profile` is used, closes #6954

* clippy
2023-05-17 16:17:47 +03:00
Amr Bashir
82169e69fc fix(core): remove trailing slash in http scope url, closes #5208 (#6974)
* fix(core): remove trailing slash in http scope url, closes #5208

* fix tests

* one more tests fix

* clippy
2023-05-17 14:33:10 +03:00
Amr Bashir
aecf146909 fix(core/ipc): access url through webview native object, closes #6889 (#6976) 2023-05-17 14:32:45 +03:00
Fabian-Lars
2b26b2e611 fix(bundler): Add new lang_file option in persian variant. (#6972) 2023-05-16 15:33:08 +03:00
Fabian-Lars
d2710e9d2e fix(core): unpin all dependencies, closes #6944 (#6966) 2023-05-16 19:27:15 +08:00
Amr Bashir
3700793a2f fix(updater): emit UPTODATE when server responds with 204, closes #6934 (#6970) 2023-05-16 13:00:00 +08:00
Amirhossein Akhlaghpour
21d5eb84ab feat: add Persian language to NSIS installer (#6965) 2023-05-16 12:58:30 +08:00
Amr Bashir
46a58afd9e chore: remove duplicate tauri in tauri-config-schema name (#6967) 2023-05-15 15:12:51 -03:00
Amr Bashir
3cc295e997 fix(nsis): prefill $INSTDIR with previous install path and respect /D flag, closes #6928 (#6935)
* fix(bundler/nsis): prefill $INSTDIR with previous install path

* fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928
2023-05-15 18:14:15 +03:00
Amr Bashir
2948820579 feat(bundler/NSIS): allow specifying custom lang files (#6867)
* feat(bundler/NSIS): allow specifying custom lang files

* add dunc as dep on all platforms

* clippy

* Update tooling/bundler/src/bundle/windows/nsis.rs

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

* Update core/tauri-utils/src/config.rs

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

* schema files

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-15 18:11:10 +03:00
Amr Bashir
e0c30a7e8b refactor: use const instead of a function (#6958) 2023-05-14 17:03:40 -03:00
Jack Wills
441f964654 feat(core/tauri): add try_get_item for SystemTray and WindowMenu, closes #5491 (#6408)
* feat: try_get_item() for window menu

Add a method in the MenuHandle struct, that will return an Optional MenuItemHandle

feat: try_get_item() for systemtray

Add a method in the SystemTrayHandle struct, that will return an Optional SystemTrayMenuItemHandle

docs: features documented in ./changes/minor.md

fix: suggested changes

fix CI

* Update .changes/tray_get_item.md

---------
2023-05-12 16:15:36 +03:00
Pierre Cashon
2c1fd570f8 fix(bundler): ensure that there are no duplicate extension arguments when bundling on Windows, fixes #6103 (#6917)
* fix(bundler): ensure that there are no duplicate extension arguments during bundling on Windows (fix #6103)

* fix(bundler): ensure that there are no duplicate extension arguments during bundling on Windows (fix #6103)
2023-05-12 15:52:26 +03:00
Guilherme Oenning
7c23720920 feat: add tauri::version, similar to getTauriVersion available on JS API (#6546)
Signed-off-by: goenning <me@goenning.net>

Apply suggestions from code review
2023-05-12 15:36:31 +03:00
KurikoMoe
fb485d25a0 fix(cli): fix cli connection timeout to dev server (fix #6045) (#6046)
Fix tauri-cli connection to dev server stucks and waits for TCP timeout.
2023-05-12 15:01:24 +03:00
Akshay
a08d1b248f chore: fix broken symlinks in license files (#6336)
symlink to repo root
2023-05-12 14:56:32 +03:00
Amr Bashir
dc682155de fix(core): Fix WindowBuilder::on_navigation handler never registerd, closes #6865 (#6921)
* fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865

* clippy
2023-05-12 14:03:42 +03:00
Amr Bashir
e092f79946 feat(bundler/nsis): allow specifying custom template, closes #6887 (#6922) 2023-05-12 14:02:07 +03:00
Fabian-Lars
c2b0dab7ef docs: Fix api.js docs pipeline with updated typedoc dependencies (#6945) 2023-05-12 07:54:15 -03:00
nathan-fall
b257bebf9e feat(bundler): Add Japanese to supported NSIS languages, ref #6906 (#6940) 2023-05-11 09:50:35 +02:00
hanaTsuk1
bf49a7679a update bundler nsis template(SimpChinese, TradChinese) (#6939) 2023-05-11 14:30:13 +08:00
Simon Hyll
469d9f8a4a docs(tauri-utils): described behavior of version field when omitted (#6938) 2023-05-11 14:18:45 +08:00
Simon Hyll
41e10b22fa chore: fixed grammar and typos (#6937) 2023-05-11 02:21:15 +03:00
Ronie Martinez
96d346222f docs: Update Github workflow status shields (#6910)
* docs: Update Github workflow status shields

* Update with name, icon and fix
2023-05-10 04:04:12 +03:00
Amr Bashir
2b47426be8 chore: explain covector tags (#6923) 2023-05-09 21:59:01 +03:00
Amr Bashir
aa2a30e96b chore: setup covector change tags/sections/groups (#6920)
![image](https://github.com/tauri-apps/tauri/assets/48618675/ac4f22dd-630d-4bfc-8966-48d19492593f)
2023-05-09 17:45:50 +03:00
Raphii
540ddd4e6a feat(bundler): Add Dutch to supported NSIS languages, ref #6906 (#6907)
* Add Dutch to supported NSIS languages

* Added change file

* Reference Dutch language in nsis bundler

* Fix formatting
2023-05-09 15:37:05 +02:00
Lucas Fernandes Nogueira
2659ca1ab4 feat(cli): add rustls as default Cargo feature (#6900) 2023-05-08 09:29:17 -03:00
chip
24490bca19 use handlebars::no_escape instead of closures (#6899) 2023-05-08 08:39:54 -03:00
github-actions[bot]
73a0ad41c7 apply version updates (#6858)
Co-authored-by: wusyong <wusyong@users.noreply.github.com>
2023-05-08 18:51:23 +08:00
LuisFerLCC
422b481798 Add Spanish and SpanishInternational languages (#6871) 2023-05-06 16:25:10 +08:00
Fabian-Lars
6a6b1388ea fix(bundler): correctly escape resource xml, fixes #6853 (#6855) 2023-05-04 09:10:33 -03:00
Amr Bashir
6788bb4984 chore: update reproduction wording (#6850)
* chore: update reproduction wording

* Update bug_report.yml

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>

* Update bug_report.yml

---------

Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
2023-05-04 19:28:22 +08:00
Fabian-Lars
2915bd068e fix(bundler): Fix webview install modes in NSIS bundler (#6854) 2023-05-04 19:27:27 +08:00
Lucas Fernandes Nogueira
5053a9c4c4 fix(ci): use rustls on publish-cli-js workflow (#6847) 2023-05-03 14:59:09 -03:00
Lucas Fernandes Nogueira
20f582f6c3 chore: update changelog with v1.3 remote IPC backport (#6848) 2023-05-03 14:58:57 -03:00
Lucas Nogueira
dafdcc9b42 fix(ci): use ubuntu-20.04 to build the CLI 2023-05-03 12:05:49 -03:00
Lucas Nogueira
7fd4ca0aef chore(api): downgrade documentation dependencies 2023-05-03 10:10:59 -03:00
Lucas Fernandes Nogueira
0dfd5f875f fix(core): pin winnow dependency to 0.4.1 to keep 1.60 MSRV (#6845) 2023-05-03 09:31:59 -03:00
Lucas Fernandes Nogueira
14b3667420 fix(api): downgrade typedoc to 0.23 (#6844) 2023-05-03 09:19:37 -03:00
github-actions[bot]
bf804657f5 Apply Version Updates From Current Changes (#5815)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-05-03 08:19:06 -03:00
Lucas Fernandes Nogueira
93452b791a feat(bundler): download NSIS zip from tauri-apps/binary-releases (#6838) 2023-05-02 16:36:33 -03:00
Lucas Fernandes Nogueira
6d6b6e653e feat: configure escaping on handlebars templates (#6678)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-05-02 09:59:59 -03:00
Lucas Fernandes Nogueira
40f137c214 fix(core): IPC remote domain check bypassed by isolation iframe usage (#6691) 2023-05-02 09:58:51 -03:00
renovate[bot]
e8e214b72e chore(deps) Update Tauri API Definitions (#6739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-24 11:19:59 -03:00
renovate[bot]
eae0150b0a chore(deps) Update Rust crate serde_json to 1.0.96 (#6738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-24 11:19:49 -03:00
Kárándi Tamás
51460340bf fix: copy failure in NSIS bundler #6743 (#6744) 2023-04-19 19:42:38 -03:00
renovate[bot]
dfb5f52d3c chore(deps) Update Tauri API Definitions (#6684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 11:20:44 -03:00
renovate[bot]
80069e1dc0 chore(deps) Update Rust crate json-patch to v1 (#6686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 11:20:08 -03:00
renovate[bot]
5fcb55e420 chore(deps) Update Rust crate json-patch to v1 (#6687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 11:19:55 -03:00
Lucas Fernandes Nogueira
ee71c31fd0 feat(core): allow configuring remote domains with IPC access, closes #5088 (#5918) 2023-04-11 08:50:15 -03:00
Amr Bashir
6ff801e27d chore: rename config-schema to tauri-config-schema (#6250)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-04-07 12:11:05 -03:00
renovate[bot]
44b4e2ee00 chore(deps) Update dependency eslint-config-standard-with-typescript to v34 (#6180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 21:15:51 -03:00
renovate[bot]
5a1d86b346 chore(deps) Update Tauri JS CLI (#6177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 21:14:04 -03:00
renovate[bot]
f4c9635724 chore(deps) Update Rust crate cargo_toml to 0.15 (#6214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 21:13:25 -03:00
renovate[bot]
565dc3baa7 chore(deps) Update Tauri Utils (major) (#4717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 21:12:33 -03:00
renovate[bot]
a3c9754950 chore(deps) Update Tauri Bundler (#6640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-06 13:03:43 -03:00
thep0y
708efbd9b7 fix(core/tauri): upgrade open to 3.2 to fix a bug on Windows (#6441)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-04-06 12:08:32 -03:00
Si Yang
da30753754 style: needless_borrow, useless_format (#6620) 2023-04-04 10:10:47 -03:00
Amr Bashir
0b46637eba fix(api): construct correct object for onResized and onMoved, closes #6507 (#6509)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-04-03 12:18:36 -03:00
renovate[bot]
d3e4fb20b5 chore(deps) Update Tauri API Definitions (#6523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-04-03 11:33:47 -03:00
dependabot[bot]
919d96dd8a chore(deps): bump openssl from 0.10.40 to 0.10.49 in /tooling/cli (#6618)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-03 10:57:03 -03:00
dependabot[bot]
6c7eac7288 chore(deps): bump openssl from 0.10.45 to 0.10.48 in /examples/api/src-tauri (#6551)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-03 10:05:45 -03:00
dependabot[bot]
901ce937d6 chore(deps): bump openssl from 0.10.45 to 0.10.48 in /examples/updater/src-tauri (#6550)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-03 10:05:36 -03:00
Mokhtar Hamdoune
81b9c505cc return the commment of maximum number of redirects to its right place… (#6607) 2023-04-03 08:39:15 -03:00
afa
7489f96697 fix(bundler): fix problem of macOS bunder while i18n is set, closes #6614 (#6615)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-04-03 08:37:50 -03:00
Miniontoby
a926b49a01 Fix Github Actions of Tauri Plugin with-api template (#6603)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2023-04-03 08:12:49 -03:00
Zeeshan Ali Khan
5fdc616df9 feat: Use the zbus-backed of notify-rust (#6332)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-03-31 12:36:59 -03:00
Amr Bashir
1487b18dcb refactor: add useful diagnostics to tauri info (#6570)
* refactor: add useful diagnostics to `tauri info`

this also paves the way for interactive fixes in the future

* refactor: add useful diagnostics to `tauri info`

this also paves the way for interactive fixes in the future

* fix use_npm logic [skip ci]

* lint [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-03-31 10:23:34 -03:00
Lucas Fernandes Nogueira
7f820ee190 chore(tests): enhance and document updater NSIS test (#6556) 2023-03-31 10:13:35 -03:00
Lucas Fernandes Nogueira
54c6f158d9 chore(cli): enhance empty updater key password warning (#6558) 2023-03-31 10:13:25 -03:00
Fabian-Lars
23282873e7 docs(api.js): Fix basename example, closes tauri-apps/tauri-docs#1180 (#6553) 2023-03-31 10:13:04 -03:00
Amr Bashir
eb1ec0416c fix(core/updater): read and parse response after checking status code, closes #6192 (#6575) 2023-03-31 10:06:59 -03:00
Lucas Fernandes Nogueira
5e0c4489df fix(bundler): enhance extract_zip security by using enclosed_name() (#6555)
See https://docs.rs/zip/0.6.4/zip/read/struct.ZipFile.html#method.enclosed_name
2023-03-31 10:05:44 -03:00
Lucas Fernandes Nogueira
d788d23071 refactor(core): do not allow JS API to set additional browser args (#6216)
This was introduced in #5799, but it's dangerous to let the frontend set this option.
2023-03-31 10:05:18 -03:00
Amr Bashir
a7ee5ca7c3 fix(cli): look for available ports for built-in dev server, closes #6511 (#6514)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-03-31 10:03:38 -03:00
Amr Bashir
ff4ea1eabb fix: dispatch focus event to app.run on Windows, closes #6460 (#6504) 2023-03-31 10:03:25 -03:00
CzBiX
57c6bf07bb fix(cli): fix default-run not deserialized (#6584)
* fix(cli): fix default-run not deserialized

* Create fix-cli-default-run.md

* Update .changes/fix-cli-default-run.md [skip ci]

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2023-03-29 14:43:16 -03:00
amrbashir
38ee5066e7 chore: update schema files 2023-03-28 16:25:33 +02:00
Elliot Waite
8c07076e25 docs: update grammer 2023-03-28 16:04:44 +02:00
passivedragon
2f70d8da2b fix: symlink issue bundling for linux #5781 (#6391)
* bundler for linux: fix error on pre-existing links

* fix: symlink issue bundling for linux #5781
2023-03-17 15:03:40 -03:00
Lucas Fernandes Nogueira
c46c09f31d fix(deps): pin raw-window-handle to 0.5.0 (#6480)
* fix(deps): pin raw-window-handle to 0.5.0

* lint [skip ci]
2023-03-17 14:11:24 -03:00
Shaun Hamilton
c2867a65d8 feat: add config links to json schema (closes #5479) (#6356)
* feat(core): add config links to json schema

* feat(core): add schema builds
2023-03-17 13:17:34 -03:00
Amr Bashir
058469114d docs: update formdata usage (#6374)
* docs: update formdata usage

* update generated files

* update generated files

* run workflow on push for dev only

* remove `js-api.json` from generated files check

* restore js-api.json before checking diff
2023-03-17 13:13:02 -03:00
sameoldlab
00c60097c5 fix scope example (#6401)
Changed `scope` example to provide an array, as described in the docs and how it works.
2023-03-17 13:11:43 -03:00
Fabian-Lars
1d0de2a558 fix(core): export SystemTrayMenuItemHandle to fix doc generation. (#6440) 2023-03-17 13:09:27 -03:00
Fabian-Lars
1fa729b218 fix(docs): mark internal interfaces as such to deduplicate markdown output (#6260) 2023-03-16 09:25:13 -03:00
renovate[bot]
808deecfff chore(deps) Update Tauri API Definitions (#6277)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 09:22:20 -03:00
Amr Bashir
b7a2ce2c63 feat(cli): add --port, closes #6186 (#6283)
* feat(cli): add --dev-server-port, closes #6186

* add http:// prefix

* name it to `--port`

* rename in all places
2023-03-16 09:22:02 -03:00
2nthony
3536aa00d1 fix(api): event name types (#6318)
* fix(api): event name

* suggestion change

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-03-16 09:16:50 -03:00
Amr Bashir
1c8229fbe2 fix(cli.js): detect node-<version> binary, closes #6427 (#6432)
* fix(cli.js): detect `node-<version>` binary, closes #6427

* use `?` instead of `*` and escape the hyphen

Co-authored-by: TurtleIdiot <18502738+TurtleIdiot@users.noreply.github.com>

---------

Co-authored-by: TurtleIdiot <18502738+TurtleIdiot@users.noreply.github.com>
2023-03-16 09:01:41 -03:00
amrbashir
e513b69d98 chore: fix info rendering in bug issue template 2023-03-06 15:37:27 +02:00
Lorenzo Lewis
cfcc7f3c20 Commit JS AST, update check-generated-file checkout action (#6262)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-02-22 10:10:54 -03:00
Lucas Fernandes Nogueira
5fdf8dcb8e fix(core): mime type of .less, .sass and .styl files (#6316) 2023-02-19 16:23:18 -03:00
Lucas Fernandes Nogueira
36e4837cea chore(examples): delete mobile.toml file (#6317) 2023-02-19 16:23:09 -03:00
Lucas Fernandes Nogueira
17bf7f1f0f feat(ci): add workflow to check license header (#6315) 2023-02-19 10:33:59 -03:00
Lucas Fernandes Nogueira
46e6187c89 chore: update license year (#6311) 2023-02-19 10:17:49 -03:00
Lucas Fernandes Nogueira
3d16461b68 fix(core): pin time to 0.3.15 (#6312) 2023-02-19 09:02:36 -03:00
dependabot[bot]
8661e4a0d7 chore(deps): bump undici from 5.9.1 to 5.19.1 in /examples/api (#6296)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-18 16:23:25 -03:00
Amr Bashir
f6c3ea6faa chore: simplify windows_subsystem attribute (#6273) 2023-02-18 16:23:09 -03:00
Amr Bashir
bfa69691a5 fix(cli): detect --profile. closes #6255 (#6268) 2023-02-18 16:20:21 -03:00
Lucas Fernandes Nogueira
e8014a7f61 fix(cli): do not crash on watcher (#6303) 2023-02-17 22:06:10 -03:00
Lucas Fernandes Nogueira
138cb8d739 fix(tauri-runtime-wry): tray event listener not registered (#6270) 2023-02-14 14:56:36 -03:00
dependabot[bot]
852e11e17b chore(deps): bump tokio from 1.23.1 to 1.24.2 in /tooling/cli (#6194)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-02-08 09:15:49 -03:00
renovate[bot]
c9364c2a4c chore(deps) Update Tauri API Definitions (#6215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-08 09:14:15 -03:00
Lucas Fernandes Nogueira
a8d640b3c6 fix(core): pin unarray and os_info (#6212) 2023-02-07 20:47:31 -03:00
dependabot[bot]
b72adc0a66 chore(deps): bump tokio from 1.20.3 to 1.20.4 in /tooling/webdriver (#6193)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 19:46:31 -03:00
renovate[bot]
7e8e0e76ec chore(deps) Update Tauri API Definitions (#6178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-02 16:45:17 -03:00
chip
50576a5e1e fix 1.67 clippy warnings (compatible with MSRV) (#6179) 2023-02-01 14:24:01 -03:00
Alain Nicolas Schneble
314f0e212f fix(cli): web_dev_server html template serialization (fix #6165) (#6166)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-29 15:12:01 -03:00
Fabian-Lars
f7ac2e9250 docs(api.js): fix heading level in window api docs (#6157) 2023-01-29 15:00:50 -03:00
renovate[bot]
db7765edad chore(deps) Update Tauri Codegen (#6034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-26 11:23:08 -03:00
Fabian-Lars
d20a728892 feat: Further improve workspace inheritance, closes #6122, #5070 (#6144)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-26 10:47:23 -03:00
Amr Bashir
9da996073f fix(cli): fix printing paths on Windows (#6137) 2023-01-26 10:45:58 -03:00
renovate[bot]
ed6b81b29d chore(deps) Update Rust crate toml to 0.6.0 (#6139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-26 09:32:34 -03:00
Fabian-Lars
b0d3128597 fix(bundler): NSIS: default to user permission level (#6135) 2023-01-26 09:24:57 -03:00
renovate[bot]
2d9936931a chore(deps) Update Tauri JS CLI (#6138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-26 09:24:08 -03:00
renovate[bot]
0d6bc3b583 chore(deps) Update dependency eslint-config-standard-with-typescript to v32 (#6141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-26 09:16:57 -03:00
Amr Bashir
aff1fd2c7d chore: update nsis-tauri-utils to 0.1.1 (#6136) 2023-01-26 09:16:43 -03:00
renovate[bot]
7a17c1e89f chore(deps) Update Tauri API Definitions to v5.49.0 (#6140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-26 09:12:36 -03:00
Jonas Kruckenberg
e71e375c29 chore: enable aarch64-apple-darwin cargo-binstall builds (#6145) 2023-01-26 09:09:04 -03:00
Fabian-Lars
36540ce3c3 feat(bundler): enable arm64 target for nsis bundle (#6070)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-23 18:32:45 -03:00
Ludea
275800a603 feat: add french support for nsis (#6114)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-23 18:29:27 -03:00
Amr Bashir
f29c56da8c feat(NSIS): option to remove user data & uninstaller lang & fix RTL (#6129)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-23 18:25:01 -03:00
Amr Bashir
328583e12e feat(bundler/nsis): migrate to nsis_tauri_utils (#6120)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-01-23 18:12:14 -03:00
Chris Ohk
26f306d65c fix: Correct minor typos (#6132) 2023-01-23 18:10:42 -03:00
dependabot[bot]
87ea607ef4 chore(deps): bump bumpalo from 3.10.0 to 3.12.0 in /tooling/cli (#6118)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-23 18:10:07 -03:00
Golden Water
763f0bdcb0 feat: add Simplified Chinese support for nsis. (#6109)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-20 11:35:08 -03:00
DK Liao
27fa1022ee feat: add Traditional Chinese support for nsis (#6111) 2023-01-20 11:11:18 -03:00
DK Liao
e601b9a790 fix: quick typo fix for nsis (#6112) 2023-01-20 11:10:31 -03:00
Fabian-Lars
60e6f6c3f1 feat(bundler): Add support for creating NSIS bundles on unix hosts (#5788)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-19 15:42:40 -03:00
Amr Bashir
35b587c830 feat: add languages support for nsis (#6039)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-19 14:39:53 -03:00
renovate[bot]
b9559b35d1 chore(deps) Update dependency eslint-config-standard-with-typescript to v30 (#6091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-19 00:25:18 -03:00
Lucas Nogueira
d4f89af18d feat: skip password prompt on the build command if CI is set fixes #6089 2023-01-18 23:54:30 -03:00
Amr Bashir
8fb1df8aa6 feat(cli): add --ci flag to signer generate, closes #6089 (#6097)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-18 23:43:37 -03:00
renovate[bot]
e0631d379c chore(deps) Update Tauri API Definitions (#6087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-18 22:39:53 -03:00
renovate[bot]
581b515e08 chore(deps) Update Tauri JS CLI (#6088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-18 22:39:44 -03:00
Fabian-Lars
20ff1f4596 feat(bundler): Add support for numeric-only build numbers in msi version (#6096)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-18 22:30:44 -03:00
Fabian-Lars
fc193a502f ci: downgrade benchmark runner to ubuntu20.04 (#6095) 2023-01-18 22:28:42 -03:00
Amr Bashir
d4d6a98d98 fix(core): convert js Map to object before serialization, closes #6078 (#6099)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-18 22:17:01 -03:00
Lucas Nogueira
a822a6ad74 chore: update versions after ignore=0.4.18 patch 2023-01-18 21:47:26 -03:00
Lucas Nogueira
6ed2b04872 chore(deps): revert phf to 0.10 2023-01-17 13:26:22 -03:00
Lucas Nogueira
7ccfa2fb0b chore(deps): pin ignore to =0.4.18 2023-01-17 13:10:09 -03:00
Lucas Nogueira
1b9f0ec350 fix(core): adjust aes_gcm usage 2023-01-17 13:09:49 -03:00
Lucas Nogueira
2455328f81 fix(core): WindowBuilder::from_config documentation example 2023-01-17 12:28:11 -03:00
Lucas Nogueira
f4fe3beb84 chore(tauri-utils): update dependencies 2023-01-17 12:25:01 -03:00
Lucas Nogueira
54a4a14b41 Revert "chore(deps): update embed_plist to 1.4"
This reverts commit b3591d46e6.
2023-01-17 12:21:35 -03:00
Lucas Nogueira
b3591d46e6 chore(deps): update embed_plist to 1.4 2023-01-17 12:19:36 -03:00
Amr Bashir
0b4882ed92 fix(cli/node): add json5 resolution, fix audit ci (#5991) 2023-01-16 22:55:18 -03:00
dependabot[bot]
ca3a53005a chore(deps): bump tokio from 1.21.2 to 1.23.1 in /tooling/cli (#5997)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:47:48 -03:00
dependabot[bot]
6ccfce4180 chore(deps): bump tokio from 1.19.2 to 1.20.3 in /tooling/webdriver (#5996)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:47:34 -03:00
dependabot[bot]
7aca4527e8 chore(deps): bump tokio from 1.21.2 to 1.24.1 in /examples/api/src-tauri (#5998)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:42:50 -03:00
dependabot[bot]
9d543f6ed3 chore(deps): bump tokio from 1.21.2 to 1.24.1 in /examples/resources/src-tauri (#5999)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:42:35 -03:00
dependabot[bot]
2761dd037f chore(deps): bump tokio from 1.21.2 to 1.23.1 in /examples/tauri-dynamic-lib/src-tauri (#6000)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:42:24 -03:00
dependabot[bot]
9afbeb6b7a chore(deps): bump tokio from 1.21.2 to 1.24.1 in /examples/sidecar/src-tauri (#6001)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:42:15 -03:00
dependabot[bot]
6e60bd637c chore(deps): bump tokio from 1.21.2 to 1.24.1 in /examples/updater/src-tauri (#6002)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:42:05 -03:00
dependabot[bot]
8e4820642e chore(deps): bump tokio from 1.21.2 to 1.24.1 in /examples/web/core (#6003)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:41:57 -03:00
dependabot[bot]
a788aea85d chore(deps): bump tokio from 1.23.0 to 1.24.1 in /examples/workspace (#6004)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:41:47 -03:00
Amr Bashir
7aab3e2076 fix(cli.rs): improve rustc not found error msg (#6021) 2023-01-16 22:41:05 -03:00
dependabot[bot]
05662b3129 chore(deps): bump bzip2 from 0.4.3 to 0.4.4 in /tooling/cli (#6028)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 22:40:44 -03:00
renovate[bot]
62f8659bef chore(deps) Update Tauri API Definitions (#6031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-16 22:40:34 -03:00
renovate[bot]
8ac2f412be chore(deps) Update Tauri JS CLI (#6032)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-16 22:40:21 -03:00
Fabian-Lars
01b876761a fix(bundler): fix order of webview2 installer args in nsis bundle (#6042) 2023-01-16 22:35:22 -03:00
Jonas Kruckenberg
8eabb09e80 Update FUNDING.yml to point to the org sponsors (#6056) 2023-01-16 22:33:42 -03:00
Fabian-Lars
49dff27ef1 feat(core): create WindowBuilder from WindowConfig (#6073)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-01-16 22:29:21 -03:00
Fabian-Lars
b08ae637a0 fix(cli): remove default features from template (#6074) 2023-01-16 21:43:29 -03:00
Shogo Hida
8c842a54a6 feature: disable mouse event when building windows on Linux, closes #5913 (#6025)
Co-authored-by: Wu Yu Wei <wusyong9104@gmail.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Fixes https://github.com/tauri-apps/tauri/issues/5913
2023-01-16 10:33:06 -03:00
529 changed files with 18195 additions and 9559 deletions

View File

@@ -1,5 +0,0 @@
---
"tauri-bundler": patch
---
Add dylib support to `tauri.bundle.macOS.frameworks`.

View File

@@ -1,5 +0,0 @@
---
"api": minor
---
Added the `additionalBrowserArgs` option when creating a window.

View File

@@ -1,5 +0,0 @@
---
"tauri-utils": minor
---
Added the `additional_browser_args` option to the window configuration.

View File

@@ -1,7 +0,0 @@
---
"tauri": minor
"tauri-runtime-wry": minor
"tauri-runtime": minor
---
Added the `additional_browser_args` option when creating a window.

View File

@@ -1,6 +0,0 @@
---
"cli.rs": "patch"
---
Fix `tauri info` panicking when parsing crates version on a newly created project without a `Cargo.lock` file.

View File

@@ -1,6 +1,16 @@
{
"gitSiteUrl": "https://www.github.com/tauri-apps/tauri/",
"timeout": 3600000,
"changeTags": {
"feat": "New Features",
"enhance": "Enhancements",
"bug": "Bug Fixes",
"pref": "Performance Improvements",
"changes": "What's Changed",
"sec": "Security fixes",
"deps": "Dependencies",
"breaking": "Breaking Changes"
},
"defaultChangeTag": "changes",
"pkgManagers": {
"rust": {
"errorOnVersionRange": "^2.0.0-0",
@@ -123,13 +133,13 @@
}
},
"packages": {
"api": {
"@tauri-apps/api": {
"path": "./tooling/api",
"manager": "javascript",
"assets": [
{
"path": "./tooling/api/dist/tauri-apps-api-${ pkgFile.version }.tgz",
"name": "api-${ pkgFile.version }.tgz"
"name": "tauri-apps-api-${ pkgFile.version }.tgz"
}
],
"prepublish": [
@@ -211,7 +221,7 @@
"dependencies": ["tauri-codegen", "tauri-utils"],
"postversion": [
"node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../config-schema/Cargo.toml"
"cargo build --manifest-path ../tauri-config-schema/Cargo.toml"
],
"assets": [
{
@@ -231,26 +241,26 @@
],
"postversion": "node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
},
"cli.js": {
"@tauri-apps/cli": {
"path": "./tooling/cli/node",
"manager": "javascript",
"getPublishedVersion": "node ../../../.scripts/covector/package-latest-version.js npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }",
"dependencies": ["cli.rs"],
"dependencies": ["tauri-cli"],
"postversion": [
"node ../../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../../../core/config-schema/Cargo.toml"
"cargo build --manifest-path ../../../core/tauri-config-schema/Cargo.toml"
],
"prepublish": [],
"publish": [],
"postpublish": []
},
"cli.rs": {
"tauri-cli": {
"path": "./tooling/cli",
"manager": "rust",
"dependencies": ["tauri-bundler", "tauri-utils"],
"postversion": [
"cargo check",
"cargo build --manifest-path ../../core/config-schema/Cargo.toml"
"cargo build --manifest-path ../../core/tauri-config-schema/Cargo.toml"
],
"assets": [
{

View File

@@ -1,5 +0,0 @@
---
"api": "minor"
---
Added the `WindowOptions::contentProtected` option and `WebviewWindow#setContentProtected` to change it at runtime.

View File

@@ -1,5 +0,0 @@
---
"tauri-utils": "patch"
---
Added the `content_protected` option to the window configuration.

View File

@@ -1,7 +0,0 @@
---
"tauri": "minor"
"tauri-runtime": "minor"
"tauri-runtime-wry": "minor"
---
Added the `content_protected` option when creating a window and `Window::set_content_protected` to change it at runtime.

View File

@@ -1,5 +0,0 @@
---
"tauri": minor
---
Added `Window::on_navigation`.

View File

@@ -1,5 +0,0 @@
---
"tauri": "patch"
---
Sync `__TAURI_METADATA__.__windows` across all windows.

View File

@@ -1,5 +0,0 @@
---
"api": minor
---
Allow setting the text of the dialog buttons.

View File

@@ -1,5 +0,0 @@
---
"tauri": minor
---
Added `OkWithLabel` and `OkCancelWithLabels` variants to the `api::dialog::MessageDialogButtons` enum to set the text of the dialog buttons.

View File

@@ -1,6 +0,0 @@
---
"cli.rs": minor
"cli.js": minor
---
Add `--png` option for the `icon` command to generate custom icon sizes.

View File

@@ -1,7 +0,0 @@
---
"tauri-runtime-wry": minor
"tauri-runtime": minor
"tauri": minor
---
Added `Builder::device_event_filter` and `App::set_device_event_filter` methods.

View File

@@ -1,5 +0,0 @@
---
"tauri": "patch"
---
Fix resize glitch when double clicking a custom titlebar in the top resize area.

View File

@@ -1,5 +0,0 @@
---
"tauri": "patch"
---
Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when `recursive` option was `false`.

View File

@@ -1,5 +0,0 @@
---
"cli.rs": "patch"
---
Fix building apps with unicode characters in their `productName`.

View File

@@ -1,8 +0,0 @@
---
"tauri": minor
"tauri-runtime": minor
"tauri-runtime-wry": minor
"api": minor
---
Add `is_minimized()` window method.

View File

@@ -1,8 +0,0 @@
---
"tauri-bundler": minor
"tauri-utils": minor
"cli.rs": minor
"cli.js": minor
---
Add `nsis` bundle target

View File

@@ -1,5 +0,0 @@
---
"tauri": minor
---
Added support to `mailto:` and `tel:` links on the shell API.

View File

@@ -1,31 +1,44 @@
# Changes
##### via https://github.com/jbolda/covector
As you create PRs and make changes that require a version bump, please add a new markdown file in this folder. You do not note the version _number_, but rather the type of bump that you expect: major, minor, or patch. The filename is not important, as long as it is a `.md`, but we recommend that it represents the overall change for organizational purposes.
When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process.
Use the following format:
```md
---
"package-a": patch
"package-b": patch
---
Change summary goes here
```
Summaries do not have a specific character limit, but are text only. These summaries are used within the (future implementation of) changelogs. They will give context to the change and also point back to the original PR if more details and context are needed.
Changes will be designated as a `major`, `minor` or `patch` as further described in [semver](https://semver.org/).
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format, but will be discussed prior to usage (as extra steps will be necessary in consideration of merging and publishing).
# Changes
##### via https://github.com/jbolda/covector
As you create PRs and make changes that require a version bump, please add a new markdown file in this folder. You do not note the version _number_, but rather the type of bump that you expect: major, minor, or patch. The filename is not important, as long as it is a `.md`, but we recommend that it represents the overall change for organizational purposes.
When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process.
Use the following format:
```md
---
'package-a': patch
'package-b': patch
---
Change summary goes here
```
Summaries do not have a specific character limit, but are text only. These summaries are used within the (future implementation of) changelogs. They will give context to the change and also point back to the original PR if more details and context are needed.
Changes will be designated as a `major`, `minor` or `patch` as further described in [semver](https://semver.org/).
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format, but will be discussed prior to usage (as extra steps will be necessary in consideration of merging and publishing).
Additionally you could specify a tag for the change file to group it with other changes by prefixing the bump with `:<tag>`, for example:
```md
---
'package-a': patch:bug
---
Change summary goes here
```
which will group this change file with other changes that specify the `bug` tag.
For list of available tags, see the `changeTags` key in [./config.json](./config.json)

View File

@@ -1,5 +0,0 @@
---
"tauri-runtime": minor
---
Added `navigation_handler` field on `PendingWindow`.

View File

@@ -1,5 +0,0 @@
---
"tauri-build": "minor"
---
Add `WindowsAttributes::app_manifest` to specify the application manifest on Windows.

View File

@@ -1,8 +0,0 @@
---
"tauri": "minor"
"api": "minor"
"tauri-runtime": "minor"
"tauri-runtime-wry": "minor"
---
Add `title` getter on window.

View File

@@ -1,6 +0,0 @@
---
"tauri-runtime": minor
"tauri-runtime-wry": minor
---
Added `TrayHandle::set_tooltip` and `SystemTray::with_tooltip`.

View File

@@ -1,5 +0,0 @@
---
"tauri": patch
---
Implement `SystemTray::with_tooltip` and `SystemTrayHandle::set_tooltip` for Windows and macOS.

View File

@@ -1,7 +0,0 @@
---
"tauri-runtime": minor
"tauri-runtime-wry": minor
"tauri": minor
---
Added window's `url()` getter.

View File

@@ -1,5 +0,0 @@
---
'cli.rs': 'minor'
---
Add support for Cargo's workspace inheritance for the package version.

View File

@@ -1,7 +0,0 @@
---
"tauri": "patch"
"tauri-runtime": "patch"
"tauri-runtime-wry": "patch"
---
On Windows, change webview theme based on Window theme for more accurate `prefers-color-scheme` support.

View File

@@ -1,6 +0,0 @@
---
"tauri-bundler": "patch"
---
On Windows, the `msi` installer's `Launch App` checkbox will be checked by default.

View File

@@ -1,5 +0,0 @@
---
"tauri-runtime-wry": minor
---
Implement the webview navigation handler.

View File

@@ -54,20 +54,20 @@ Some Tauri packages will be automatically built when running one of the examples
### Packages Overview
- The JS API (`/tooling/api`) contains JS bindings to the builtin Rust functions in the Rust API.
- cli.rs (`/tooling/cli`) is the primary CLI for creating and developing Tauri apps.
- cli.js (`/tooling/cli/node`) is a Node.js CLI wrapper for `cli.rs`.
- Tauri Bundler (`/tooling/bundler`) is used by the Rust CLI to package executables into installers.
- Tauri Core (`/core/tauri`) is the heart of Tauri. It contains the code that starts the app, configures communication between Rust and the Webview, and ties all the other packages together.
- The Macros (`/core/tauri-macros`) are used by Tauri Core for various functions.
### Developing The Node.js CLI (cli.js)
`cli.js` is a wrapper to `cli.rs` so most changes should be written on the Rust CLI. The `[Tauri repo root]/tooling/cli/node` folder contains only packaging scripts to properly publish the Rust CLI binaries to NPM.
- Tauri Bundler (`/tooling/bundler`) is used by the Rust CLI to package executables into installers.
- The Rust CLI aka `tauri-cli` (`/tooling/cli`) is the primary CLI for creating and developing Tauri apps.
- The JS CLI aka `@tauri-apps/cli` (`/tooling/cli/node`) is a Node.js CLI wrapper for `tauri-cli`.
- The JS API aka `@tauri-apps/api` (`/tooling/api`) contains JS bindings to the builtin Rust functions in the Rust API.
### Developing Tauri Bundler and Rust CLI
The code for the bundler is located in `[Tauri repo root]/tooling/bundler`, and the code for the Rust CLI is located in `[Tauri repo root]/tooling/cli`. If you are using your local copy of cli.js (see above), any changes you make to the bundler and CLI will be automatically built and applied when running the build or dev command. Otherwise, running `cargo install --path .` in the Rust CLI directory will allow you to run `cargo tauri build` and `cargo tauri dev` anywhere, using the updated copy of the bundler and cli. You will have to run this command each time you make a change in either package.
The code for the bundler is located in `[Tauri repo root]/tooling/bundler`, and the code for the Rust CLI is located in `[Tauri repo root]/tooling/cli`. If you are using your local copy of `@tauri-apps/cli` (see above), any changes you make to the bundler and CLI will be automatically built and applied when running the build or dev command. Otherwise, running `cargo install --path .` in the Rust CLI directory will allow you to run `cargo tauri build` and `cargo tauri dev` anywhere, using the updated copy of the bundler and cli. You will have to run this command each time you make a change in either package.
### Developing The Node.js CLI (`@tauri-apps/cli`)
`@tauri-apps/cli` is a wrapper to `tauri-cli` so most changes should be written on the Rust CLI. The `[Tauri repo root]/tooling/cli/node` folder contains only packaging scripts to properly publish the Rust CLI binaries to NPM.
### Developing Tauri Core and Related Components (Rust API, Macros, Codegen, and Utils)

6
.github/FUNDING.yml vendored
View File

@@ -1,6 +1,10 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
# These are supported funding model platforms
github: nothingismagick
github: tauri-apps
patreon: #
open_collective: tauri
ko_fi: # Replace with a single Ko-fi username

View File

@@ -1,3 +1,7 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: 🐞 Bug Report
title: '[bug] '
description: Report a bug
@@ -26,11 +30,10 @@ body:
id: reproduction
attributes:
label: Reproduction
description: Steps to reproduce the behavior.
description: A link to a reproduction repo or steps to reproduce the behaviour.
placeholder: |
1. Go to ...
2. Click on ...
3. See error
Please provide a minimal reproduction or steps to reproduce, see this guide https://stackoverflow.com/help/minimal-reproducible-example
Why reproduction is required? see this article https://antfu.me/posts/why-reproductions-are-required
- type: textarea
id: expected-behavior
@@ -43,6 +46,7 @@ body:
attributes:
label: Platform and versions
description: "Output of `npm run tauri info` or `cargo tauri info`"
render: text
validations:
required: true
@@ -50,8 +54,8 @@ body:
id: logs
attributes:
label: Stack trace
render: shell
render: text
- type: textarea
id: context
attributes:

View File

@@ -1,3 +1,7 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
contact_links:
- name: 💬 Discord Chat
url: https://discord.com/invite/tauri

View File

@@ -1,3 +1,7 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: 💡 Feature Request
title: '[feat] '
description: Suggest an idea

3
.github/config.yml vendored
View File

@@ -0,0 +1,3 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,4 +1,4 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
@@ -10,6 +10,7 @@ on:
- cron: '0 0 * * *'
push:
paths:
- '.github/workflows/audit.yml'
- '**/Cargo.lock'
- '**/Cargo.toml'
- '**/package.json'
@@ -33,6 +34,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: yarn audit
- name: audit workspace
run: yarn audit
- name: audit @tauri-apps/api
working-directory: tooling/api
run: yarn audit
- name: audit @tauri-apps/cli
working-directory: tooling/cli/node
run: yarn audit

View File

@@ -1,10 +1,14 @@
name: benches
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: bench
on:
push:
branches:
- dev
- next
- 1.x
workflow_dispatch:
env:
@@ -23,7 +27,7 @@ jobs:
matrix:
rust: [nightly]
platform:
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest }
- { target: x86_64-unknown-linux-gnu, os: ubuntu-20.04 }
runs-on: ${{ matrix.platform.os }}

32
.github/workflows/check-change-tags.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check change tags
on:
pull_request:
paths:
- '.changes/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
list-files: shell
filters: |
changes:
- added|modified: '.changes/*.md'
- name: check
run: node ./.scripts/ci/check-change-tags.js ${{ steps.filter.outputs.changes_files }}
if: ${{ steps.filter.outputs.changes == 'true' }}

View File

@@ -1,8 +1,8 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: Check generated files
name: check generated files
on:
pull_request:
@@ -12,15 +12,7 @@ on:
- 'core/tauri/scripts/bundle.global.js'
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/config-schema/schema.json'
push:
paths:
- '.github/workflows/check-generated-files.yml'
- 'tooling/api/src/**'
- 'core/tauri/scripts/bundle.global.js'
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/config-schema/schema.json'
- 'core/tauri-config-schema/schema.json'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -30,41 +22,41 @@ jobs:
changes:
runs-on: ubuntu-latest
outputs:
bundle: ${{ steps.filter.outputs.bundle }}
api: ${{ steps.filter.outputs.api }}
schema: ${{ steps.filter.outputs.schema }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
bundle:
api:
- 'tooling/api/src/**'
- 'core/tauri/scripts/bundle.global.js'
schema:
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/config-schema/schema.json'
- 'core/tauri-config-schema/schema.json'
check-bundle:
api:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.bundle == 'true'
if: needs.changes.outputs.api == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: generate bundle
- name: build api
working-directory: tooling/api
run: yarn && yarn build
- name: check bundle
- name: check api
run: ./.scripts/ci/has-diff.sh
check-schema:
schema:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.schema == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: install stable
uses: actions-rs/toolchain@v1
@@ -85,7 +77,7 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./core/config-schema/Cargo.toml
args: --manifest-path ./core/tauri-config-schema/Cargo.toml
- name: check schema
run: ./.scripts/ci/has-diff.sh

View File

@@ -0,0 +1,28 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check license headers
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
list-files: shell
filters: |
added:
- added: '**'
- name: check header license on new files
if: ${{ steps.filter.outputs.added == 'true' }}
run: node ./.scripts/ci/check-license-header.js ${{ steps.filter.outputs.added_files }}

View File

@@ -1,4 +1,4 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -0,0 +1,148 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: covector version or publish
on:
push:
branches:
- 1.x
jobs:
run-integration-tests:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: install stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev libfuse2
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
core -> ../target
tooling/cli
- name: build CLI
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./tooling/cli/Cargo.toml
- name: run integration tests
run: cargo test --test '*' -- --ignored
- name: run CLI tests
timeout-minutes: 30
run: |
cd ./tooling/cli/node
yarn
yarn build
yarn test
version-or-publish:
runs-on: ubuntu-latest
timeout-minutes: 65
outputs:
change: ${{ steps.covector.outputs.change }}
commandRan: ${{ steps.covector.outputs.commandRan }}
successfulPublish: ${{ steps.covector.outputs.successfulPublish }}
needs:
- run-integration-tests
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-node@v2
with:
node-version: 14
registry-url: 'https://registry.npmjs.org'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
- name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
- name: git config
run: |
git config --global user.name "${{ github.event.pusher.name }}"
git config --global user.email "${{ github.event.pusher.email }}"
- name: covector version or publish (publish when no change files present)
uses: jbolda/covector/packages/action@covector-v0
id: covector
env:
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
CARGO_AUDIT_OPTIONS: ${{ secrets.CARGO_AUDIT_OPTIONS }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: 'version-or-publish'
createRelease: true
- name: Create Pull Request With Versions Bumped
if: steps.covector.outputs.commandRan == 'version'
uses: tauri-apps/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: release/version-updates-v1
title: Apply Version Updates From Current Changes (v1)
commit-message: 'apply version updates'
labels: 'version updates'
body: ${{ steps.covector.outputs.change }}
- name: Trigger doc update
if: |
steps.covector.outputs.successfulPublish == 'true' &&
steps.covector.outputs.packagesPublished != ''
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri-docs
event-type: update-docs
- name: Get `@tauri-apps/cli` release id
id: cliReleaseId
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
run: |
echo '${{ steps.covector.outputs }}' > output.json
id=$(jq '.["-tauri-apps-cli-releaseId"]' < output.json)
rm output.json
echo "cliReleaseId=$id" >> "$GITHUB_OUTPUT"
- name: Trigger `@tauri-apps/cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-js-cli
client-payload: '{"releaseId": "${{ steps.cliReleaseId.outputs.cliReleaseId }}" }'
- name: Trigger `tauri-cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'tauri-cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clirs

View File

@@ -1,8 +1,8 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: version or publish
name: covector version or publish
on:
push:
@@ -115,21 +115,32 @@ jobs:
repository: tauri-apps/tauri-docs
event-type: update-docs
- name: Trigger cli.js publishing workflow
- name: Get `@tauri-apps/cli` release id
id: cliReleaseId
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'cli.rs')
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
run: |
echo '${{ toJSON(steps.covector.outputs) }}' > output.json
id=$(jq '.["-tauri-apps-cli-releaseId"]' < output.json)
rm output.json
echo "cliReleaseId=$id" >> "$GITHUB_OUTPUT"
- name: Trigger `@tauri-apps/cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clijs
client-payload: '{"releaseId": "${{ steps.covector.outputs.cli.js-releaseId }}" }'
event-type: publish-js-cli
client-payload: '{"releaseId": "${{ steps.cliReleaseId.outputs.cliReleaseId }}" }'
- name: Trigger cli.rs publishing workflow
- name: Trigger `tauri-cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'cli.rs')
contains(steps.covector.outputs.packagesPublished, 'tauri-cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}

View File

@@ -1,3 +1,7 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: docker
on:

View File

@@ -1,17 +1,17 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: cli clippy and fmt check
name: lint cli
on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/lint-fmt-cli.yml'
- '.github/workflows/lint-cli.yml'
- 'tooling/cli/**'
env:
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
fmt_check:
fmt:
runs-on: ubuntu-latest
steps:
@@ -41,7 +41,7 @@ jobs:
command: fmt
args: --manifest-path ./tooling/cli/Cargo.toml --all -- --check
cli_clippy_check:
clippy:
runs-on: ubuntu-latest
steps:

View File

@@ -1,17 +1,17 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: core clippy and fmt check
name: lint core
on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/lint-fmt-core.yml'
- '.github/workflows/lint-core.yml'
- 'core/**'
- '!core/tauri/scripts/**'
- 'examples/**'
@@ -25,7 +25,7 @@ concurrency:
cancel-in-progress: true
jobs:
fmt_check:
fmt:
runs-on: ubuntu-latest
steps:
@@ -43,14 +43,14 @@ jobs:
command: fmt
args: --all -- --check
core_clippy_check:
clippy:
runs-on: ubuntu-latest
strategy:
matrix:
clippy:
- { args: '', key: 'empty' }
- {
args: '--features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart',
args: '--features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test',
key: 'all'
}
- { args: '--features custom-protocol', key: 'custom-protocol' }

View File

@@ -1,8 +1,8 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: api and cli.js lint check
name: lint js
on:
pull_request:
@@ -16,7 +16,7 @@ concurrency:
cancel-in-progress: true
jobs:
eslint-check:
eslint-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -24,24 +24,34 @@ jobs:
with:
node-version: '14'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
- name: install cli.js deps via yarn
cache-dependency-path: tooling/cli/node/yarn.lock
- name: install deps via yarn
working-directory: ./tooling/cli/node/
run: yarn
# nothing to lint
#- name: run cli.js lint
#- name: run lint
# working-directory: ./tooling/cli/node/
# run: yarn lint
- name: run cli.js format
- name: run format
working-directory: ./tooling/cli/node/
run: yarn format:check
- name: install api deps via yarn
eslint-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '14'
cache: yarn
cache-dependency-path: tooling/api/yarn.lock
- name: install deps via yarn
working-directory: ./tooling/api/
run: yarn
- name: run api lint
- name: run lint
working-directory: ./tooling/api/
run: yarn lint
- name: run api format
- name: run format
working-directory: ./tooling/api/
run: yarn format:check

View File

@@ -1,4 +1,8 @@
name: publish cli.js
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: publish `@tauri-apps/cli`
env:
DEBUG: napi:*
APP_NAME: cli
@@ -7,10 +11,10 @@ on:
workflow_dispatch:
inputs:
releaseId:
description: 'ID of the cli.js release'
description: 'ID of the `@tauri-apps/cli` release'
required: true
repository_dispatch:
types: [publish-clijs]
types: [publish-js-cli]
defaults:
run:
@@ -36,14 +40,18 @@ jobs:
build: yarn build:release --target i686-pc-windows-msvc
target: i686-pc-windows-msvc
architecture: x64
- host: ubuntu-18.04
- host: windows-latest
architecture: x64
target: aarch64-pc-windows-msvc
build: yarn build:release --target aarch64-pc-windows-msvc --features native-tls,native-tls-vendored --cargo-flags="--no-default-features"
- host: ubuntu-20.04
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: |
cd tooling/cli/node
yarn build:release --target x86_64-unknown-linux-gnu
strip *.node
- host: ubuntu-18.04
- host: ubuntu-20.04
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |
@@ -55,14 +63,14 @@ jobs:
build: |
yarn build:release --target=aarch64-apple-darwin
strip -x *.node
- host: ubuntu-18.04
- host: ubuntu-20.04
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |
cd tooling/cli/node
yarn build:release --target aarch64-unknown-linux-gnu
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-18.04
- host: ubuntu-20.04
architecture: x64
target: armv7-unknown-linux-gnueabihf
setup: |
@@ -71,7 +79,7 @@ jobs:
build: |
yarn build:release --target=armv7-unknown-linux-gnueabihf
arm-linux-gnueabihf-strip *.node
- host: ubuntu-18.04
- host: ubuntu-20.04
architecture: x64
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
@@ -80,10 +88,6 @@ jobs:
rustup target add aarch64-unknown-linux-musl
yarn build:release --target aarch64-unknown-linux-musl
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
#- host: windows-latest
# architecture: x64
# target: aarch64-pc-windows-msvc
# build: yarn build:release --target aarch64-pc-windows-msvc
name: stable - ${{ matrix.settings.target }} - node@16
runs-on: ${{ matrix.settings.host }}
steps:
@@ -295,7 +299,7 @@ jobs:
shell: bash
- name: Install system dependencies
run: |
apk add openssl-dev musl-dev glib-dev cairo-dev pkgconfig gdk-pixbuf-dev webkit2gtk-dev curl libappindicator-dev gtk+3.0-dev
apk add openssl-dev musl-dev glib-dev cairo-dev pkgconfig gdk-pixbuf-dev webkit2gtk-dev curl gtk+3.0-dev
- name: Setup and run tests
run: |
yarn tauri --help

View File

@@ -1,4 +1,8 @@
name: publish cli.rs
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: publish `tauri-cli`
env:
MACOSX_DEPLOYMENT_TARGET: '10.13'
on:
@@ -8,50 +12,63 @@ on:
jobs:
build:
runs-on: ${{ matrix.target.platform }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
target:
- {
name: 'x86_64-unknown-linux-gnu',
platform: 'ubuntu-18.04',
ext: ''
}
- { name: 'x86_64-apple-darwin', platform: 'macos-latest', ext: '' }
- {
name: 'x86_64-pc-windows-msvc',
platform: 'windows-latest',
ext: '.exe'
}
config:
- os: ubuntu-20.04
rust_target: x86_64-unknown-linux-gnu
ext: ''
args: ''
- os: macos-latest
rust_target: x86_64-apple-darwin
ext: ''
args: ''
- os: macos-latest
rust_target: aarch64-apple-darwin
ext: ''
args: ''
- os: windows-latest
rust_target: x86_64-pc-windows-msvc
ext: '.exe'
args: ''
- os: windows-latest
rust_target: aarch64-pc-windows-msvc
ext: '.exe'
args: '--no-default-features --features native-tls,native-tls-vendored'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: install stable
uses: actions-rs/toolchain@v1
- name: 'Setup Rust'
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: ${{ matrix.config.rust_target }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.config.rust_target }}
- name: install Linux dependencies
if: matrix.target.platform == 'ubuntu-latest'
if: matrix.config.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
- name: build CLI
- name: Build CLI
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./tooling/cli/Cargo.toml --release
args: --manifest-path ./tooling/cli/Cargo.toml --release ${{ matrix.config.args }}
- name: Upload CLI
uses: actions/upload-artifact@v3
with:
name: cargo-tauri-${{ matrix.target.name }}${{ matrix.target.ext }}
path: tooling/cli/target/release/cargo-tauri${{ matrix.target.ext }}
name: cargo-tauri-${{ matrix.config.rust_target }}${{ matrix.config.ext }}
path: tooling/cli/target/release/cargo-tauri${{ matrix.config.ext }}
if-no-files-found: error
upload:
@@ -76,7 +93,7 @@ jobs:
- name: Publish release
uses: softprops/action-gh-release@50195ba7f6f93d1ac97ba8332a178e008ad176aa
with:
tag_name: cli.rs-v${{ env.CLI_VERSION }}
tag_name: tauri-cli-v${{ env.CLI_VERSION }}
files: |
outputs/cargo-tauri-*.zip
outputs/cargo-tauri-*.tgz

View File

@@ -1,18 +1,18 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test cli.js
name: test `@tauri-apps/cli`
on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/test-cli-js.yml'
# currently cli.js only tests the template
# currently` @tauri-apps/cli` only tests the template
- 'tooling/cli/templates/app/**'
env:
@@ -24,7 +24,7 @@ concurrency:
cancel-in-progress: true
jobs:
test-tauri-js-cli:
test:
runs-on: ${{ matrix.platform }}
strategy:

View File

@@ -1,14 +1,14 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test cli.rs
name: test `tauri-cli`
on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/test-cli-rs.yml'
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
test-tauri-cli:
test:
runs-on: ${{ matrix.platform }}
strategy:

View File

@@ -1,4 +1,4 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
@@ -8,7 +8,7 @@ on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/test-core.yml'
@@ -24,7 +24,7 @@ concurrency:
cancel-in-progress: true
jobs:
test-tauri-core:
test:
runs-on: ${{ matrix.platform.os }}
strategy:
@@ -39,12 +39,12 @@ jobs:
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
toolchain: '1.59.0'
toolchain: '1.60.0'
}
- {
target: x86_64-apple-darwin,
os: macos-latest,
toolchain: '1.59.0'
toolchain: '1.60.0'
}
features:
- {
@@ -56,7 +56,7 @@ jobs:
key: api-all
}
- {
args: --features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,
args: --features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test,
key: all
}
@@ -82,5 +82,31 @@ jobs:
workspaces: core -> ../target
save-if: ${{ matrix.features.key == 'all' }}
- name: Downgrade crates with MSRV conflict
# The --precise flag can only be used once per invocation.
run: |
cargo update -p toml:0.7.8 --precise 0.7.3
cargo update -p toml_edit --precise 0.19.8
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
cargo update -p time --precise 0.3.15
cargo update -p ignore --precise 0.4.18
cargo update -p raw-window-handle --precise 0.5.0
cargo update -p cargo_toml:0.15.3 --precise 0.15.2
cargo update -p zbus --precise 3.13.0
cargo update -p zbus_names --precise 2.5.0
cargo update -p is-terminal --precise 0.4.7
cargo update -p colored --precise 2.0.2
cargo update -p tempfile --precise 3.6.0
cargo update -p serde_with:3.3.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 cfg-expr:0.15.5 --precise 0.15.4
cargo update -p memchr --precise 2.6.2
cargo update -p async-executor --precise 1.5.1
- name: test
run: cargo test --target ${{ matrix.platform.target }} ${{ matrix.features.args }}

View File

@@ -1,14 +1,14 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test bundler
name: test and lint bundler
on:
push:
branches:
- dev
- next
- 1.x
pull_request:
paths:
- '.github/workflows/test-bundler.yml'
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
build-tauri-bundler:
test:
runs-on: ${{ matrix.platform }}
strategy:
@@ -48,7 +48,7 @@ jobs:
cd ./tooling/bundler
cargo test
fmt_check:
fmt:
runs-on: ubuntu-latest
steps:
@@ -66,7 +66,7 @@ jobs:
command: fmt
args: --manifest-path ./tooling/bundler/Cargo.toml --all -- --check
clippy-check:
clippy:
runs-on: ubuntu-latest
steps:

View File

@@ -1,14 +1,14 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: updater test artifacts
name: test updater artifacts
on:
schedule:
- cron: '0 0 * * *'
pull_request:
paths:
- '.github/workflows/artifacts-updater.yml'
- '.github/workflows/test-updater-artifacts.yml'
- 'examples/updater/**'
workflow_dispatch:
@@ -21,7 +21,7 @@ concurrency:
cancel-in-progress: true
jobs:
build-artifacts:
test:
runs-on: ${{ matrix.platform }}
strategy:
@@ -48,7 +48,7 @@ jobs:
core -> ../target
tooling/cli
- name: build and install cli.rs
- name: build and install `tauri-cli`
run: cargo install --path tooling/cli --force
- name: Check whether code signing should be enabled
id: enablecodesigning

View File

@@ -1,4 +1,4 @@
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
@@ -8,7 +8,7 @@ on:
push:
branches:
- dev
- next
- 1.x
env:
RUST_BACKTRACE: 1

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
@@ -16,7 +16,7 @@ else
fi
if [ -z "$(git diff --name-only tooling/cli/node)" ]; then
echo "skipping cli.js - no changes detected"
echo "skipping \`@tauri-apps/cli\` - no changes detected"
else
cd tooling/cli/node
yarn format

View File

@@ -9,4 +9,4 @@ dist
/tooling/cli/templates
/tooling/cli/node
/tooling/cli/schema.json
/core/config-schema/schema.json
/core/tauri-config-schema/schema.json

View File

@@ -1,3 +1,7 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
module.exports = {
singleQuote: true,
semi: false,

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env pwsh
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -0,0 +1,79 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
const fs = require('fs')
const path = require('path')
const ignorePackages = [
'tauri-macros',
'tauri-codegen',
'tauri-runtime',
'tauri-runtime-wry',
'tauri-driver'
]
const covectorConfig = JSON.parse(
fs.readFileSync('.changes/config.json', 'utf8')
)
const tags = Object.keys(covectorConfig.changeTags)
const missingTagsFiles = {}
const unknownTagsFiles = {}
function checkChangeFiles(changeFiles) {
for (const file of changeFiles) {
const content = fs.readFileSync(file, 'utf8')
const [frontMatter] = /^---[\s\S.]*---\n/i.exec(content)
const packages = frontMatter
.split('\n')
.filter((l) => !(l === '---' || !l))
.map((l) => l.replace(/('|")/g, '').split(':'))
for (const [package, _, tag] of packages) {
if (!tag) {
if (ignorePackages.includes(package)) continue
if (!missingTagsFiles[file]) missingTagsFiles[file] = []
missingTagsFiles[file].push(package)
} else if (!tags.includes(tag)) {
if (!unknownTagsFiles[file]) unknownTagsFiles[file] = []
unknownTagsFiles[file].push({ package, tag })
}
}
}
const missingTagsEntries = Object.entries(missingTagsFiles)
const unknownTagsEntries = Object.entries(unknownTagsFiles)
if (missingTagsEntries.length > 0 || unknownTagsEntries.length > 0) {
for (const [file, packages] of missingTagsEntries) {
for (const package of packages) {
console.error(
`Package \`${package}\` is missing a change tag in ${file} `
)
}
}
for (const [file, packages] of unknownTagsEntries) {
for (const { package, tag } of packages) {
console.error(
`Package \`${package}\` has an uknown change tag ${tag} in ${file} `
)
}
}
process.exit(1)
}
}
const [_bin, _script, ...files] = process.argv
if (files.length > 0) {
checkChangeFiles(files.filter((f) => f.toLowerCase() !== 'readme.md'))
} else {
const changeFiles = fs
.readdirSync('.changes')
.filter((f) => f.endsWith('.md') && f.toLowerCase() !== 'readme.md')
.map((p) => path.join('.changes', p))
checkChangeFiles(changeFiles)
}

View File

@@ -0,0 +1,117 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
const fs = require('fs')
const path = require('path')
const readline = require('readline')
const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: MIT`
const bundlerLicense =
'// Copyright 2016-2019 Cargo-Bundle developers <https://github.com/burtonageo/cargo-bundle>'
const extensions = ['.rs', '.js', '.ts', '.yml']
const ignore = [
'target',
'templates',
'node_modules',
'gen',
'dist',
'bundle.js',
'bundle.global.js'
]
async function checkFile(file) {
if (extensions.some((e) => file.endsWith(e))) {
const fileStream = fs.createReadStream(file)
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
})
let contents = ``
let i = 0
for await (let line of rl) {
// ignore empty lines, allow shebang and bundler license
if (
line.length === 0 ||
line.startsWith('#!') ||
line === bundlerLicense
) {
continue
}
// strip comment marker
if (line.startsWith('// ')) {
line = line.substring(3)
} else if (line.startsWith('# ')) {
line = line.substring(2)
}
contents += line
if (++i === 3) {
break
}
contents += '\n'
}
if (contents !== header) {
return true
}
}
return false
}
async function check(src) {
const missingHeader = []
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
const p = path.join(src, entry.name)
if (entry.isSymbolicLink() || ignore.includes(entry.name)) {
continue
}
if (entry.isDirectory()) {
const missing = await check(p)
missingHeader.push(...missing)
} else {
const isMissing = await checkFile(p)
if (isMissing) {
missingHeader.push(p)
}
}
}
return missingHeader
}
const [_bin, _script, ...files] = process.argv
if (files.length > 0) {
async function run() {
const missing = []
for (const f of files) {
const isMissing = await checkFile(f)
if (isMissing) {
missing.push(f)
}
}
if (missing.length > 0) {
console.log(missing.join('\n'))
process.exit(1)
}
}
run()
} else {
check('.').then((missing) => {
if (missing.length > 0) {
console.log(missing.join('\n'))
process.exit(1)
}
})
}

View File

@@ -1,5 +1,9 @@
#!/bin/bash
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
if git diff --quiet --ignore-submodules HEAD
then
echo "working directory is clean"

View File

@@ -1,4 +1,9 @@
#!/bin/bash
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
set -euxo pipefail
for o in outputs/*; do

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env node
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
@@ -19,10 +20,10 @@ let url = null
switch (kind) {
case 'cargo':
url = `https://crates.io/api/v1/crates/${packageName}`
break;
break
case 'npm':
url = `https://registry.npmjs.org/${packageName}`
break;
break
default:
throw new Error('unexpected kind ' + kind)
}
@@ -30,7 +31,7 @@ switch (kind) {
const options = {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
Accept: 'application/json',
'User-Agent': 'tauri (https://github.com/tauri-apps/tauri)'
}
}
@@ -44,10 +45,12 @@ https.get(url, options, (response) => {
response.on('end', function () {
const data = JSON.parse(chunks.join(''))
if (kind === 'cargo') {
const versions = data.versions.filter(v => v.num.startsWith(target))
const versions = data.versions.filter((v) => v.num.startsWith(target))
console.log(versions.length ? versions[0].num : '0.0.0')
} else if (kind === 'npm') {
const versions = Object.keys(data.versions).filter(v => v.startsWith(target))
const versions = Object.keys(data.versions).filter((v) =>
v.startsWith(target)
)
console.log(versions[versions.length - 1] || '0.0.0')
}
})

View File

@@ -1,12 +1,13 @@
#!/usr/bin/env node
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
/*
This script is solely intended to be run as part of the `covector version` step to
keep the `../tooling/cli/metadata.json` up to date with other version bumps. Long term
we should look to find a more "rusty way" to import / "pin" a version value in our cli.rs
we should look to find a more "rusty way" to import / "pin" a version value in our tauri-cli
rust binaries.
*/
@@ -14,7 +15,7 @@ const { readFileSync, writeFileSync } = require('fs')
const packageNickname = process.argv[2]
const filePath =
packageNickname === 'cli.js'
packageNickname === '@tauri-apps/cli'
? `../../../tooling/cli/metadata.json`
: `../../tooling/cli/metadata.json`
const bump = process.argv[3]
@@ -51,9 +52,9 @@ const metadata = JSON.parse(readFileSync(filePath, 'utf-8'))
// set field version
let version
if (packageNickname === 'cli.js') {
version = inc(metadata[packageNickname].version)
metadata[packageNickname].version = version
if (packageNickname === '@tauri-apps/cli') {
version = inc(metadata['cli.js'].version)
metadata['cli.js'].version = version
} else {
version = inc(metadata[packageNickname])
metadata[packageNickname] = version

View File

@@ -1,3 +1,7 @@
#!/bin/sh
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
docker build -t aarch64-unknown-linux-gnu:latest --file .docker/cross/aarch64.Dockerfile .docker/cross

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env pwsh
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env bash
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# Copyright 2019-2022 Tauri Programme within The Commons Conservancy
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,6 +1,10 @@
: Copyright 2019-2023 Tauri Programme within The Commons Conservancy
: SPDX-License-Identifier: Apache-2.0
: SPDX-License-Identifier: MIT
@ECHO OFF
REM Copyright 2019-2022 Tauri Programme within The Commons Conservancy
REM Copyright 2019-2023 Tauri Programme within The Commons Conservancy
REM SPDX-License-Identifier: Apache-2.0
REM SPDX-License-Identifier: MIT

View File

@@ -39,16 +39,16 @@ This is common code that is reused in many places and offers useful utilities li
### Tauri Tooling
#### [api](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) [TS -> JS]
#### [@tauri-apps/api](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) [TS -> JS]
A TypeScript library that creates `cjs` and `esm` JavaScript endpoints for you to import into your Frontend framework so that the Webview can call and listen to backend activity. We also ship the pure TypeScript, because for some frameworks this is more optimal. It uses the message passing of webviews to their hosts.
#### [bundler](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) [RUST / SHELL]
The bundler is a library that builds a Tauri App for the platform triple it detects / is told. At the moment it currently supports macOS, Windows and Linux - but in the near future will support mobile platforms as well. May be used outside of Tauri projects.
#### [cli.js](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) [JS]
It is a wrapper around [cli.rs](https://github.com/tauri-apps/tauri/blob/dev/tooling/cli) using [napi-rs](https://github.com/napi-rs/napi-rs) to produce NPM packages for each platform.
#### [@tauri-apps/cli](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) [JS]
It is a wrapper around [tauri-cli](https://github.com/tauri-apps/tauri/blob/dev/tooling/cli) using [napi-rs](https://github.com/napi-rs/napi-rs) to produce NPM packages for each platform.
#### [cli.rs](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) [RUST]
#### [tauri-cli](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) [RUST]
This rust executable provides the full interface to all of the required activities for which the CLI is required. It will run on macOS, Windows, and Linux.
#### [create-tauri-app](https://github.com/tauri-apps/create-tauri-app) [JS]
@@ -67,9 +67,6 @@ Tauri uses WRY as the abstract layer responsible to determine which webview is u
# Additional tooling
## [binary-releases](https://github.com/tauri-apps/binary-releases)
This is the delivery mechanism for tauri prebuilt binaries: currently the cli.rs (used by cli.js) and rustup binaries (used by the deps install command of cli.js). These artifacts are automatically created on release.
## [tauri-action](https://github.com/tauri-apps/tauri-action)
This is a github workflow that builds tauri binaries for all platforms. It is not the fastest out there, but it gets the job done and is highly configurable. Even allowing you to create a (very basic) tauri app even if tauri is not setup.
@@ -119,7 +116,7 @@ This will do several things:
1. start the JS Framework devserver
2. begin the long process of downloading and compiling the rust libraries
3. open an application window with devtools enabled
4. keep a long-lived console alive
4. keep a long-lived console alive
If you change your HTML/CSS/TS/JS, your framework devserver should give you its best shot at instant hot module reloading and you will see the changes instantly.
@@ -149,7 +146,7 @@ After some time, the process will end and you can see the results in the `./src-
End users will be provided with binaries in ways that are appropriate for their systems. Whether macOS, Linux, or Windows, direct download or store installations - they will be able to follow procedures for installing and removing that they are used to.
## What does the Updating flow look like?
When a new version is ready, the developer publishes the new signed artifacts to a server (that they have configured within `tauri.conf.json`).
When a new version is ready, the developer publishes the new signed artifacts to a server (that they have configured within `tauri.conf.json`).
The application can poll this server to see if there is a new release. When there is a new release, the user is prompted to update. The application update is downloaded, verified (checksum & signature), updated, closed, and restarted.

View File

@@ -1,4 +1,5 @@
[workspace]
resolver = "2"
members = [
# core
"core/tauri",
@@ -8,11 +9,11 @@ members = [
"core/tauri-utils",
"core/tauri-build",
"core/tauri-codegen",
"core/config-schema",
"core/tauri-config-schema",
# integration tests
"core/tests/restart",
"core/tests/app-updater"
"core/tests/app-updater",
]
exclude = [
@@ -22,7 +23,7 @@ exclude = [
"examples/resources/src-tauri",
"examples/sidecar/src-tauri",
"examples/web/core",
"examples/workspace"
"examples/workspace",
]
# default to small, optimized workspace release binaries

View File

@@ -2,7 +2,7 @@
[![status](https://img.shields.io/badge/status-stable-blue.svg)](https://github.com/tauri-apps/tauri/tree/dev)
[![License](https://img.shields.io/badge/License-MIT%20or%20Apache%202-green.svg)](https://opencollective.com/tauri)
[![test library](https://img.shields.io/github/workflow/status/tauri-apps/tauri/test%20library?label=test%20library)](https://github.com/tauri-apps/tauri/actions?query=workflow%3A%22test+library%22)
[![test core](https://img.shields.io/github/actions/workflow/status/tauri-apps/tauri/test-core.yml?label=test%20core&logo=github)](https://github.com/tauri-apps/tauri/actions/workflows/test-core.yml)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri?ref=badge_shield)
[![Chat Server](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.gg/SpmNs4S)
[![website](https://img.shields.io/badge/website-tauri.app-purple.svg)](https://tauri.app)
@@ -25,12 +25,12 @@
### Tooling
| Component | Description | Version | Lin | Win | Mac |
| --------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | --- | --- | --- |
| [**bundler**](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) | manufacture the final binaries | [![](https://img.shields.io/crates/v/tauri-bundler.svg)](https://crates.io/crates/tauri-bundler) | ✅ | ✅ | ✅ |
| [**api.js**](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) | JS API for interaction with Rust backend | [![](https://img.shields.io/npm/v/@tauri-apps/api.svg)](https://www.npmjs.com/package/@tauri-apps/api) | ✅ | ✅ | ✅ |
| [**cli.rs**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) | create, develop and build apps | [![](https://img.shields.io/crates/v/tauri-cli.svg)](https://crates.io/crates/tauri-cli) | ✅ | ✅ | ✅ |
| [**cli.js**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) | Node.js CLI wrapper for cli.rs | [![](https://img.shields.io/npm/v/@tauri-apps/cli.svg)](https://www.npmjs.com/package/@tauri-apps/cli) | ✅ | ✅ | ✅ |
| Component | Description | Version | Lin | Win | Mac |
| ------------------------------------------------------------------------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | --- | --- | --- |
| [**bundler**](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) | manufacture the final binaries | [![](https://img.shields.io/crates/v/tauri-bundler.svg)](https://crates.io/crates/tauri-bundler) | ✅ | ✅ | ✅ |
| [**tauri-cli**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) | create, develop and build apps | [![](https://img.shields.io/crates/v/tauri-cli.svg)](https://crates.io/crates/tauri-cli) | ✅ | ✅ | ✅ |
| [**@tauri-apps/cli**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) | Node.js CLI wrapper for `tauri-cli` | [![](https://img.shields.io/npm/v/@tauri-apps/cli.svg)](https://www.npmjs.com/package/@tauri-apps/cli) | ✅ | ✅ | ✅ |
| [**@tauri-apps/api**](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) | JS API for interaction with Rust backend | [![](https://img.shields.io/npm/v/@tauri-apps/api.svg)](https://www.npmjs.com/package/@tauri-apps/api) | ✅ | ✅ | ✅ |
### Utilities and Plugins
@@ -75,6 +75,8 @@ For **running** Tauri apps we support the below configurations (these are automa
- `webkit2gtk`, `gtk3`, `libayatana-appindicator`<sup>1</sup>
- Fedora (latest 2 versions) with the following packages installed:
- `webkit2gtk3`, `gtk3`, `libappindicator-gtk3`<sup>1</sup>
- Void with the following packages installed:
- `webkit2gtk`, `gtk+3`, `libappindicator`<sup>1</sup>
<sup>1</sup> `appindicator` is only required if system trays are used

View File

@@ -1,13 +0,0 @@
[package]
name = "config-schema"
version = "0.0.0"
edition = "2021"
publish = false
[build-dependencies]
tauri-utils = { version = "1.0.0", features = [ "schema" ], path = "../tauri-utils" }
schemars = { version = "0.8", features = [ "url", "preserve_order" ] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
serde_with = "1.12"
url = { version = "2.3", features = [ "serde" ] }

View File

@@ -1 +0,0 @@
fn main() {}

View File

@@ -1,5 +1,38 @@
# Changelog
## \[1.4.1]
### Bug Fixes
- [`5ecb46b3`](https://www.github.com/tauri-apps/tauri/commit/5ecb46b3410afd1b5c82494c1e0a91d5a358c41a)([#7773](https://www.github.com/tauri-apps/tauri/pull/7773)) Automatically set rpath on macOS if frameworks are bundled and copy frameworks to `src-tauri/target/Frameworks` for usage in development.
- [`290e366a`](https://www.github.com/tauri-apps/tauri/commit/290e366ae98e9a52b1b43bfd3e285150427ebffa)([#7419](https://www.github.com/tauri-apps/tauri/pull/7419)) Correctly copy the WebView2 runtime in development when `webviewInstallMode` is used instead of `webviewFixedRuntimePath`.
### Dependencies
- Upgraded to `tauri-utils@1.5.0`
- Upgraded to `tauri-codegen@1.4.1`
## \[1.4.0]
### Enhancements
- [`52474e47`](https://www.github.com/tauri-apps/tauri/commit/52474e479d695865299d8c8d868fb98b99731020)([#7141](https://www.github.com/tauri-apps/tauri/pull/7141)) Enhance Cargo features check.
- [`af937290`](https://www.github.com/tauri-apps/tauri/commit/af93729031565a69d1fde6cf16bea3b9b6e43a65)([#6676](https://www.github.com/tauri-apps/tauri/pull/6676)) On Windows, set `LegalCopyright` and `FileDescription` file properties on the executable from `tauri.bundle.copyright` and `tauri.bundle.shortDescription`,
- [`d2710e9d`](https://www.github.com/tauri-apps/tauri/commit/d2710e9d2e8fd93975ef6494512370faa8cb3b7e)([#6944](https://www.github.com/tauri-apps/tauri/pull/6944)) Unpin `time`, `ignore`, and `winnow` crate versions. Developers now have to pin crates if needed themselves. A list of crates that need pinning to adhere to Tauri's MSRV will be visible in Tauri's GitHub workflow: https://github.com/tauri-apps/tauri/blob/dev/.github/workflows/test-core.yml#L85.
## \[1.3.0]
- Bump minimum supported Rust version to 1.60.
- [5fdc616d](https://www.github.com/tauri-apps/tauri/commit/5fdc616df9bea633810dcb814ac615911d77222c) feat: Use the zbus-backed of notify-rust ([#6332](https://www.github.com/tauri-apps/tauri/pull/6332)) on 2023-03-31
- Add initial support for building `nsis` bundles on non-Windows platforms.
- [60e6f6c3](https://www.github.com/tauri-apps/tauri/commit/60e6f6c3f1605f3064b5bb177992530ff788ccf0) feat(bundler): Add support for creating NSIS bundles on unix hosts ([#5788](https://www.github.com/tauri-apps/tauri/pull/5788)) on 2023-01-19
- Add `WindowsAttributes::app_manifest` to specify the application manifest on Windows.
- [bca09f7f](https://www.github.com/tauri-apps/tauri/commit/bca09f7f5ff1c9c5a4b51da043bdd5da668a179b) feat(tauri-build): add option to specify Windows manifest, closes [#5584](https://www.github.com/tauri-apps/tauri/pull/5584) ([#5730](https://www.github.com/tauri-apps/tauri/pull/5730)) on 2022-12-14
- Added support for Cargo's workspace inheritance for package information. The cli now also detects inherited `tauri` and `tauri-build` dependencies and disables manifest rewrites accordingly.
- [cd8c074a](https://www.github.com/tauri-apps/tauri/commit/cd8c074ae6592303d3f6844a4fb6d262eae913b2) feat(cli): add support for Cargo's workspace inheritance for the package version, closes [#5070](https://www.github.com/tauri-apps/tauri/pull/5070) ([#5775](https://www.github.com/tauri-apps/tauri/pull/5775)) on 2022-12-14
- [d20a7288](https://www.github.com/tauri-apps/tauri/commit/d20a728892eee1858ab525ab6216cd721f473ab5) feat: Further improve workspace inheritance, closes [#6122](https://www.github.com/tauri-apps/tauri/pull/6122), [#5070](https://www.github.com/tauri-apps/tauri/pull/5070) ([#6144](https://www.github.com/tauri-apps/tauri/pull/6144)) on 2023-01-26
- Pin `winnow` crate to 0.4.1 to keep the 1.60 MSRV.
## \[1.2.1]
- Fix `allowlist > app > show/hide` always disabled when `allowlist > app > all: false`.

View File

@@ -1,6 +1,6 @@
[package]
name = "tauri-build"
version = "1.2.1"
version = "1.4.1"
authors = [ "Tauri Programme within The Commons Conservancy" ]
categories = [ "gui", "web-programming" ]
license = "Apache-2.0 OR MIT"
@@ -8,7 +8,7 @@ homepage = "https://tauri.app"
repository = "https://github.com/tauri-apps/tauri/tree/dev/core/tauri-build"
description = "build time code to pair with https://crates.io/crates/tauri"
edition = "2021"
rust-version = "1.59"
rust-version = "1.60"
exclude = [ "CHANGELOG.md", "/target" ]
readme = "README.md"
@@ -19,16 +19,17 @@ rustdoc-args = [ "--cfg", "doc_cfg" ]
[dependencies]
anyhow = "1"
quote = { version = "1", optional = true }
tauri-codegen = { version = "1.2.1", path = "../tauri-codegen", optional = true }
tauri-utils = { version = "1.2.1", path = "../tauri-utils", features = [ "build", "resources" ] }
cargo_toml = "0.14"
tauri-codegen = { version = "1.4.1", path = "../tauri-codegen", optional = true }
tauri-utils = { version = "1.5.0", path = "../tauri-utils", features = [ "build", "resources" ] }
cargo_toml = "0.15"
serde = "1"
serde_json = "1"
heck = "0.4"
json-patch = "0.3"
[target."cfg(windows)".dependencies]
winres = "0.1"
json-patch = "1.0"
tauri-winres = "0.1"
semver = "1"
walkdir = "2"
dirs-next = "2"
[features]
codegen = [ "tauri-codegen", "quote" ]

View File

@@ -4,7 +4,7 @@
[![status](https://img.shields.io/badge/status-stable-blue.svg)](https://github.com/tauri-apps/tauri/tree/dev)
[![License](https://img.shields.io/badge/License-MIT%20or%20Apache%202-green.svg)](https://opencollective.com/tauri)
[![test library](https://img.shields.io/github/workflow/status/tauri-apps/tauri/test%20library?label=test%20library)](https://github.com/tauri-apps/tauri/actions?query=workflow%3A%22test+library%22)
[![test core](https://img.shields.io/github/actions/workflow/status/tauri-apps/tauri/test-core.yml?label=test%20core&logo=github)](https://github.com/tauri-apps/tauri/actions/workflows/test-core.yml)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri?ref=badge_shield)
[![Chat Server](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.gg/SpmNs4S)
[![website](https://img.shields.io/badge/website-tauri.app-purple.svg)](https://tauri.app)

View File

@@ -0,0 +1,211 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
use anyhow::{anyhow, Result};
use cargo_toml::{Dependency, Manifest};
use tauri_utils::config::{Config, PatternKind, TauriConfig};
#[derive(Debug, Default, PartialEq, Eq)]
struct Diff {
remove: Vec<String>,
add: Vec<String>,
}
#[derive(Debug, Clone, Copy)]
enum DependencyKind {
Build,
Normal,
}
#[derive(Debug)]
struct AllowlistedDependency {
name: String,
alias: Option<String>,
kind: DependencyKind,
all_cli_managed_features: Option<Vec<&'static str>>,
expected_features: Vec<String>,
}
pub fn check(config: &Config, manifest: &mut Manifest) -> Result<()> {
let dependencies = vec![
AllowlistedDependency {
name: "tauri-build".into(),
alias: None,
kind: DependencyKind::Build,
all_cli_managed_features: Some(vec!["isolation"]),
expected_features: match config.tauri.pattern {
PatternKind::Isolation { .. } => vec!["isolation".to_string()],
_ => vec![],
},
},
AllowlistedDependency {
name: "tauri".into(),
alias: None,
kind: DependencyKind::Normal,
all_cli_managed_features: Some(TauriConfig::all_features()),
expected_features: config
.tauri
.features()
.into_iter()
.map(|f| f.to_string())
.collect::<Vec<String>>(),
},
];
for metadata in dependencies {
let mut name = metadata.name.clone();
let mut deps = find_dependency(manifest, &metadata.name, metadata.kind);
if deps.is_empty() {
if let Some(alias) = &metadata.alias {
deps = find_dependency(manifest, alias, metadata.kind);
name = alias.clone();
}
}
for dep in deps {
if let Err(error) = check_features(dep, &metadata) {
return Err(anyhow!("
The `{}` dependency features on the `Cargo.toml` file does not match the allowlist defined under `tauri.conf.json`.
Please run `tauri dev` or `tauri build` or {}.
", name, error));
}
}
}
Ok(())
}
fn find_dependency(manifest: &mut Manifest, name: &str, kind: DependencyKind) -> Vec<Dependency> {
let dep = match kind {
DependencyKind::Build => manifest.build_dependencies.remove(name),
DependencyKind::Normal => manifest.dependencies.remove(name),
};
if let Some(dep) = dep {
vec![dep]
} else {
let mut deps = Vec::new();
for target in manifest.target.values_mut() {
if let Some(dep) = match kind {
DependencyKind::Build => target.build_dependencies.remove(name),
DependencyKind::Normal => target.dependencies.remove(name),
} {
deps.push(dep);
}
}
deps
}
}
fn features_diff(current: &[String], expected: &[String]) -> Diff {
let mut remove = Vec::new();
let mut add = Vec::new();
for feature in current {
if !expected.contains(feature) {
remove.push(feature.clone());
}
}
for feature in expected {
if !current.contains(feature) {
add.push(feature.clone());
}
}
Diff { remove, add }
}
fn check_features(dependency: Dependency, metadata: &AllowlistedDependency) -> Result<(), String> {
let features = match dependency {
Dependency::Simple(_) => Vec::new(),
Dependency::Detailed(dep) => dep.features,
Dependency::Inherited(dep) => dep.features,
};
let diff = if let Some(all_cli_managed_features) = &metadata.all_cli_managed_features {
features_diff(
&features
.into_iter()
.filter(|f| all_cli_managed_features.contains(&f.as_str()))
.collect::<Vec<String>>(),
&metadata.expected_features,
)
} else {
features_diff(
&features
.into_iter()
.filter(|f| f.starts_with("allow-"))
.collect::<Vec<String>>(),
&metadata.expected_features,
)
};
let mut error_message = String::new();
if !diff.remove.is_empty() {
error_message.push_str("remove the `");
error_message.push_str(&diff.remove.join(", "));
error_message.push_str(if diff.remove.len() == 1 {
"` feature"
} else {
"` features"
});
if !diff.add.is_empty() {
error_message.push_str(" and ");
}
}
if !diff.add.is_empty() {
error_message.push_str("add the `");
error_message.push_str(&diff.add.join(", "));
error_message.push_str(if diff.add.len() == 1 {
"` feature"
} else {
"` features"
});
}
if error_message.is_empty() {
Ok(())
} else {
Err(error_message)
}
}
#[cfg(test)]
mod tests {
use super::Diff;
#[test]
fn array_diff() {
for (current, expected, result) in [
(vec![], vec![], Default::default()),
(
vec!["a".into()],
vec![],
Diff {
remove: vec!["a".into()],
add: vec![],
},
),
(vec!["a".into()], vec!["a".into()], Default::default()),
(
vec!["a".into(), "b".into()],
vec!["a".into()],
Diff {
remove: vec!["b".into()],
add: vec![],
},
),
(
vec!["a".into(), "b".into()],
vec!["a".into(), "c".into()],
Diff {
remove: vec!["b".into()],
add: vec!["c".into()],
},
),
] {
assert_eq!(super::features_diff(&current, &expected), result);
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -1,19 +1,24 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
#![cfg_attr(doc_cfg, feature(doc_cfg))]
use anyhow::Context;
pub use anyhow::Result;
use cargo_toml::Manifest;
use heck::AsShoutySnakeCase;
use tauri_utils::resources::{external_binaries, resource_relpath, ResourcePaths};
use tauri_utils::{
config::{BundleResources, Config, WebviewInstallMode},
resources::{external_binaries, ResourcePaths},
};
use std::path::{Path, PathBuf};
mod allowlist;
#[cfg(feature = "codegen")]
mod codegen;
#[cfg(windows)]
mod static_vcruntime;
#[cfg(feature = "codegen")]
@@ -68,11 +73,117 @@ fn copy_binaries(
/// Copies resources to a path.
fn copy_resources(resources: ResourcePaths<'_>, path: &Path) -> Result<()> {
for src in resources {
let src = src?;
println!("cargo:rerun-if-changed={}", src.display());
let dest = path.join(resource_relpath(&src));
copy_file(&src, dest)?;
for resource in resources.iter() {
let resource = resource?;
println!("cargo:rerun-if-changed={}", resource.path().display());
copy_file(resource.path(), path.join(resource.target()))?;
}
Ok(())
}
#[cfg(unix)]
fn symlink_dir(src: &Path, dst: &Path) -> std::io::Result<()> {
std::os::unix::fs::symlink(src, dst)
}
/// Makes a symbolic link to a directory.
#[cfg(windows)]
fn symlink_dir(src: &Path, dst: &Path) -> std::io::Result<()> {
std::os::windows::fs::symlink_dir(src, dst)
}
/// Makes a symbolic link to a file.
#[cfg(unix)]
fn symlink_file(src: &Path, dst: &Path) -> std::io::Result<()> {
std::os::unix::fs::symlink(src, dst)
}
/// Makes a symbolic link to a file.
#[cfg(windows)]
fn symlink_file(src: &Path, dst: &Path) -> std::io::Result<()> {
std::os::windows::fs::symlink_file(src, dst)
}
fn copy_dir(from: &Path, to: &Path) -> Result<()> {
for entry in walkdir::WalkDir::new(from) {
let entry = entry?;
debug_assert!(entry.path().starts_with(from));
let rel_path = entry.path().strip_prefix(from)?;
let dest_path = to.join(rel_path);
if entry.file_type().is_symlink() {
let target = std::fs::read_link(entry.path())?;
if entry.path().is_dir() {
symlink_dir(&target, &dest_path)?;
} else {
symlink_file(&target, &dest_path)?;
}
} else if entry.file_type().is_dir() {
std::fs::create_dir(dest_path)?;
} else {
std::fs::copy(entry.path(), dest_path)?;
}
}
Ok(())
}
// Copies the framework under `{src_dir}/{framework}.framework` to `{dest_dir}/{framework}.framework`.
fn copy_framework_from(src_dir: &Path, framework: &str, dest_dir: &Path) -> Result<bool> {
let src_name = format!("{}.framework", framework);
let src_path = src_dir.join(&src_name);
if src_path.exists() {
copy_dir(&src_path, &dest_dir.join(&src_name))?;
Ok(true)
} else {
Ok(false)
}
}
// Copies the macOS application bundle frameworks to the target folder
fn copy_frameworks(dest_dir: &Path, frameworks: &[String]) -> Result<()> {
std::fs::create_dir_all(dest_dir).with_context(|| {
format!(
"Failed to create frameworks output directory at {:?}",
dest_dir
)
})?;
for framework in frameworks.iter() {
if framework.ends_with(".framework") {
let src_path = PathBuf::from(framework);
let src_name = src_path
.file_name()
.expect("Couldn't get framework filename");
let dest_path = dest_dir.join(src_name);
copy_dir(&src_path, &dest_path)?;
continue;
} else if framework.ends_with(".dylib") {
let src_path = PathBuf::from(framework);
if !src_path.exists() {
return Err(anyhow::anyhow!("Library not found: {}", framework));
}
let src_name = src_path.file_name().expect("Couldn't get library filename");
let dest_path = dest_dir.join(src_name);
copy_file(&src_path, &dest_path)?;
continue;
} else if framework.contains('/') {
return Err(anyhow::anyhow!(
"Framework path should have .framework extension: {}",
framework
));
}
if let Some(home_dir) = dirs_next::home_dir() {
if copy_framework_from(&home_dir.join("Library/Frameworks/"), framework, dest_dir)? {
continue;
}
}
if copy_framework_from(&PathBuf::from("/Library/Frameworks/"), framework, dest_dir)?
|| copy_framework_from(
&PathBuf::from("/Network/Library/Frameworks/"),
framework,
dest_dir,
)?
{
continue;
}
}
Ok(())
}
@@ -113,10 +224,28 @@ pub struct WindowsAttributes {
/// A string containing an [application manifest] to be included with the application on Windows.
///
/// Defaults to:
/// ```ignore
/// ```text
#[doc = include_str!("window-app-manifest.xml")]
/// ```
///
/// ## Warning
///
/// if you are using tauri's dialog APIs, you need to specify a dependency on Common Control v6 by adding the following to your custom manifest:
/// ```text
/// <dependency>
/// <dependentAssembly>
/// <assemblyIdentity
/// type="win32"
/// name="Microsoft.Windows.Common-Controls"
/// version="6.0.0.0"
/// processorArchitecture="*"
/// publicKeyToken="6595b64144ccf1df"
/// language="*"
/// />
/// </dependentAssembly>
/// </dependency>
/// ```
///
/// [application manifest]: https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests
app_manifest: Option<String>,
}
@@ -145,39 +274,57 @@ impl WindowsAttributes {
self
}
/// Sets the Windows app [manifest].
/// Sets the [application manifest] to be included with the application on Windows.
///
/// Defaults to:
/// ```text
#[doc = include_str!("window-app-manifest.xml")]
/// ```
///
/// ## Warning
///
/// if you are using tauri's dialog APIs, you need to specify a dependency on Common Control v6 by adding the following to your custom manifest:
/// ```text
/// <dependency>
/// <dependentAssembly>
/// <assemblyIdentity
/// type="win32"
/// name="Microsoft.Windows.Common-Controls"
/// version="6.0.0.0"
/// processorArchitecture="*"
/// publicKeyToken="6595b64144ccf1df"
/// language="*"
/// />
/// </dependentAssembly>
/// </dependency>
/// ```
///
/// # Example
///
/// The following manifest will brand the exe as requesting administrator privileges.
/// Thus, everytime it is executed, a Windows UAC dialog will appear.
///
/// Note that you can move the manifest contents to a separate file and use `include_str!("manifest.xml")`
/// instead of the inline string.
///
/// ```rust,no_run
/// let mut windows = tauri_build::WindowsAttributes::new();
/// windows = windows.app_manifest(r#"
/// <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
/// <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
/// <security>
/// <requestedPrivileges>
/// <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
/// </requestedPrivileges>
/// </security>
/// </trustInfo>
/// <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
/// <security>
/// <requestedPrivileges>
/// <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
/// </requestedPrivileges>
/// </security>
/// </trustInfo>
/// </assembly>
/// "#);
/// tauri_build::try_build(
/// tauri_build::Attributes::new().windows_attributes(windows)
/// ).expect("failed to run build script");
/// let attrs = tauri_build::Attributes::new().windows_attributes(windows);
/// tauri_build::try_build(attrs).expect("failed to run build script");
/// ```
///
/// Defaults to:
/// ```ignore
#[doc = include_str!("window-app-manifest.xml")]
/// Note that you can move the manifest contents to a separate file and use `include_str!("manifest.xml")`
/// instead of the inline string.
///
/// [manifest]: https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests
/// ```
#[must_use]
pub fn app_manifest<S: AsRef<str>>(mut self, manifest: S) -> Self {
self.app_manifest = Some(manifest.as_ref().to_string());
@@ -243,8 +390,6 @@ pub fn build() {
#[allow(unused_variables)]
pub fn try_build(attributes: Attributes) -> Result<()> {
use anyhow::anyhow;
use cargo_toml::{Dependency, Manifest};
use tauri_utils::config::{Config, TauriConfig};
println!("cargo:rerun-if-env-changed=TAURI_CONFIG");
println!("cargo:rerun-if-changed=tauri.conf.json");
@@ -269,59 +414,22 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
cfg_alias("dev", !has_feature("custom-protocol"));
let mut manifest = Manifest::from_path("Cargo.toml")?;
if let Some(tauri) = manifest.dependencies.remove("tauri") {
let features = match tauri {
Dependency::Simple(_) => Vec::new(),
Dependency::Detailed(dep) => dep.features,
Dependency::Inherited(dep) => dep.features,
};
let ws_path = get_workspace_dir()?;
let mut manifest =
Manifest::<cargo_toml::Value>::from_slice_with_metadata(&std::fs::read("Cargo.toml")?)?;
let all_cli_managed_features = TauriConfig::all_features();
let diff = features_diff(
&features
.into_iter()
.filter(|f| all_cli_managed_features.contains(&f.as_str()))
.collect::<Vec<String>>(),
&config
.tauri
.features()
.into_iter()
.map(|f| f.to_string())
.collect::<Vec<String>>(),
);
let mut error_message = String::new();
if !diff.remove.is_empty() {
error_message.push_str("remove the `");
error_message.push_str(&diff.remove.join(", "));
error_message.push_str(if diff.remove.len() == 1 {
"` feature"
} else {
"` features"
});
if !diff.add.is_empty() {
error_message.push_str(" and ");
}
}
if !diff.add.is_empty() {
error_message.push_str("add the `");
error_message.push_str(&diff.add.join(", "));
error_message.push_str(if diff.add.len() == 1 {
"` feature"
} else {
"` features"
});
}
if !error_message.is_empty() {
return Err(anyhow!("
The `tauri` dependency features on the `Cargo.toml` file does not match the allowlist defined under `tauri.conf.json`.
Please run `tauri dev` or `tauri build` or {}.
", error_message));
}
if let Ok(ws_manifest) = Manifest::from_path(ws_path.join("Cargo.toml")) {
Manifest::complete_from_path_and_workspace(
&mut manifest,
Path::new("Cargo.toml"),
Some((&ws_manifest, ws_path.as_path())),
)?;
} else {
Manifest::complete_from_path(&mut manifest, Path::new("Cargo.toml"))?;
}
allowlist::check(&config, &mut manifest)?;
let target_triple = std::env::var("TARGET").unwrap();
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
// TODO: far from ideal, but there's no other way to get the target dir, see <https://github.com/rust-lang/cargo/issues/5457>
@@ -343,26 +451,55 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
}
#[allow(unused_mut, clippy::redundant_clone)]
let mut resources = config.tauri.bundle.resources.clone().unwrap_or_default();
#[cfg(windows)]
if let Some(fixed_webview2_runtime_path) = &config.tauri.bundle.windows.webview_fixed_runtime_path
{
resources.push(fixed_webview2_runtime_path.display().to_string());
let mut resources = config
.tauri
.bundle
.resources
.clone()
.unwrap_or_else(|| BundleResources::List(Vec::new()));
if target_triple.contains("windows") {
if let Some(fixed_webview2_runtime_path) =
match &config.tauri.bundle.windows.webview_fixed_runtime_path {
Some(path) => Some(path),
None => match &config.tauri.bundle.windows.webview_install_mode {
WebviewInstallMode::FixedRuntime { path } => Some(path),
_ => None,
},
}
{
resources.push(fixed_webview2_runtime_path.display().to_string());
}
}
match resources {
BundleResources::List(res) => {
copy_resources(ResourcePaths::new(res.as_slice(), true), target_dir)?
}
BundleResources::Map(map) => copy_resources(ResourcePaths::from_map(&map, true), target_dir)?,
}
copy_resources(ResourcePaths::new(resources.as_slice(), true), target_dir)?;
#[cfg(target_os = "macos")]
{
if let Some(version) = config.tauri.bundle.macos.minimum_system_version {
println!("cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET={}", version);
if target_triple.contains("darwin") {
if let Some(frameworks) = &config.tauri.bundle.macos.frameworks {
if !frameworks.is_empty() {
let frameworks_dir = target_dir.parent().unwrap().join("Frameworks");
let _ = std::fs::remove_dir_all(&frameworks_dir);
// copy frameworks to the root `target` folder (instead of `target/debug` for instance)
// because the rpath is set to `@executable_path/../Frameworks`.
copy_frameworks(&frameworks_dir, frameworks)?;
// If we have frameworks, we need to set the @rpath
// https://github.com/tauri-apps/tauri/issues/7710
println!("cargo:rustc-link-arg=-Wl,-rpath,@executable_path/../Frameworks");
}
}
if let Some(version) = &config.tauri.bundle.macos.minimum_system_version {
println!("cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET={version}");
}
}
#[cfg(windows)]
{
use anyhow::Context;
if target_triple.contains("windows") {
use semver::Version;
use winres::{VersionInfo, WindowsResource};
use tauri_winres::{VersionInfo, WindowsResource};
fn find_icon<F: Fn(&&String) -> bool>(config: &Config, predicate: F, default: &str) -> PathBuf {
let icon_path = config
@@ -390,27 +527,23 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
res.set_manifest(include_str!("window-app-manifest.xml"));
}
if let Some(sdk_dir) = &attributes.windows_attributes.sdk_dir {
if let Some(sdk_dir_str) = sdk_dir.to_str() {
res.set_toolkit_path(sdk_dir_str);
} else {
return Err(anyhow!(
"sdk_dir path is not valid; only UTF-8 characters are allowed"
));
}
}
if let Some(version) = &config.package.version {
if let Ok(v) = Version::parse(version) {
if let Some(version_str) = &config.package.version {
if let Ok(v) = Version::parse(version_str) {
let version = v.major << 48 | v.minor << 32 | v.patch << 16;
res.set_version_info(VersionInfo::FILEVERSION, version);
res.set_version_info(VersionInfo::PRODUCTVERSION, version);
}
res.set("FileVersion", version);
res.set("ProductVersion", version);
res.set("FileVersion", version_str);
res.set("ProductVersion", version_str);
}
if let Some(product_name) = &config.package.product_name {
res.set("ProductName", product_name);
res.set("FileDescription", product_name);
}
if let Some(short_description) = &config.tauri.bundle.short_description {
res.set("FileDescription", short_description);
}
if let Some(copyright) = &config.tauri.bundle.copyright {
res.set("LegalCopyright", copyright);
}
res.set_icon_with_id(&window_icon_path.display().to_string(), "32512");
res.compile().with_context(|| {
@@ -462,65 +595,22 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
Ok(())
}
#[derive(Debug, Default, PartialEq, Eq)]
struct Diff {
remove: Vec<String>,
add: Vec<String>,
#[derive(serde::Deserialize)]
struct CargoMetadata {
workspace_root: PathBuf,
}
fn features_diff(current: &[String], expected: &[String]) -> Diff {
let mut remove = Vec::new();
let mut add = Vec::new();
for feature in current {
if !expected.contains(feature) {
remove.push(feature.clone());
}
fn get_workspace_dir() -> Result<PathBuf> {
let output = std::process::Command::new("cargo")
.args(["metadata", "--no-deps", "--format-version", "1"])
.output()?;
if !output.status.success() {
return Err(anyhow::anyhow!(
"cargo metadata command exited with a non zero exit code: {}",
String::from_utf8(output.stderr)?
));
}
for feature in expected {
if !current.contains(feature) {
add.push(feature.clone());
}
}
Diff { remove, add }
}
#[cfg(test)]
mod tests {
use super::Diff;
#[test]
fn array_diff() {
for (current, expected, result) in [
(vec![], vec![], Default::default()),
(
vec!["a".into()],
vec![],
Diff {
remove: vec!["a".into()],
add: vec![],
},
),
(vec!["a".into()], vec!["a".into()], Default::default()),
(
vec!["a".into(), "b".into()],
vec!["a".into()],
Diff {
remove: vec!["b".into()],
add: vec![],
},
),
(
vec!["a".into(), "b".into()],
vec!["a".into(), "c".into()],
Diff {
remove: vec!["b".into()],
add: vec!["c".into()],
},
),
] {
assert_eq!(super::features_diff(&current, &expected), result);
}
}
Ok(serde_json::from_slice::<CargoMetadata>(&output.stdout)?.workspace_root)
}

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
@@ -48,11 +48,11 @@ fn override_msvcrt_lib() {
let f = fs::OpenOptions::new()
.write(true)
.create_new(true)
.open(&path);
.open(path);
if let Ok(mut f) = f {
f.write_all(machine).unwrap();
f.write_all(bytes).unwrap();
}
// Add the output directory to the native library path.
println!("cargo:rustc-link-search=native={}", out_dir);
println!("cargo:rustc-link-search=native={out_dir}");
}

View File

@@ -1,5 +1,25 @@
# Changelog
## \[1.4.1]
### Dependencies
- Upgraded to `tauri-utils@1.5.0`
## \[1.4.0]
### Enhancements
- [`17d5a4f5`](https://www.github.com/tauri-apps/tauri/commit/17d5a4f51f244d3ff42014b5d1b075fad7c636a5)([#6706](https://www.github.com/tauri-apps/tauri/pull/6706)) Early panic if the PNG icon is not RGBA.
- [`d2710e9d`](https://www.github.com/tauri-apps/tauri/commit/d2710e9d2e8fd93975ef6494512370faa8cb3b7e)([#6944](https://www.github.com/tauri-apps/tauri/pull/6944)) Unpin `time`, `ignore`, and `winnow` crate versions. Developers now have to pin crates if needed themselves. A list of crates that need pinning to adhere to Tauri's MSRV will be visible in Tauri's GitHub workflow: https://github.com/tauri-apps/tauri/blob/dev/.github/workflows/test-core.yml#L85.
## \[1.3.0]
- Bump minimum supported Rust version to 1.60.
- [5fdc616d](https://www.github.com/tauri-apps/tauri/commit/5fdc616df9bea633810dcb814ac615911d77222c) feat: Use the zbus-backed of notify-rust ([#6332](https://www.github.com/tauri-apps/tauri/pull/6332)) on 2023-03-31
- Pin `time` to `0.3.15`.
- [3d16461b](https://www.github.com/tauri-apps/tauri/commit/3d16461b68583ba7db037fbc217786e79b46ddf2) fix(core): pin time to 0.3.15 ([#6312](https://www.github.com/tauri-apps/tauri/pull/6312)) on 2023-02-19
## \[1.2.1]
- Fix `allowlist > app > show/hide` always disabled when `allowlist > app > all: false`.

View File

@@ -1,6 +1,6 @@
[package]
name = "tauri-codegen"
version = "1.2.1"
version = "1.4.1"
authors = [ "Tauri Programme within The Commons Conservancy" ]
categories = [ "gui", "web-programming" ]
license = "Apache-2.0 OR MIT"
@@ -8,27 +8,27 @@ homepage = "https://tauri.app"
repository = "https://github.com/tauri-apps/tauri/tree/dev/core/tauri-codegen"
description = "code generation meant to be consumed inside of `tauri` through `tauri-build` or `tauri-macros`"
edition = "2021"
rust-version = "1.59"
rust-version = "1.60"
exclude = [ "CHANGELOG.md", "/target" ]
readme = "README.md"
[dependencies]
sha2 = "0.10"
base64 = "0.20"
base64 = "0.21"
proc-macro2 = "1"
quote = "1"
serde = { version = "1", features = [ "derive" ] }
serde_json = "1"
tauri-utils = { version = "1.2.1", path = "../tauri-utils", features = [ "build" ] }
tauri-utils = { version = "1.5.0", path = "../tauri-utils", features = [ "build" ] }
thiserror = "1"
walkdir = "2"
brotli = { version = "3", optional = true, default-features = false, features = [ "std" ] }
regex = { version = "1.7.0", optional = true }
regex = { version = "1.7.1", optional = true }
uuid = { version = "1", features = [ "v4" ] }
semver = "1"
ico = "0.3"
png = "0.17"
json-patch = "0.3"
json-patch = "1.0"
[target."cfg(target_os = \"macos\")".dependencies]
plist = "1"

View File

@@ -6,7 +6,7 @@
[![Chat Server](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/SpmNs4S)
[![devto](https://img.shields.io/badge/blog-dev.to-black.svg)](https://dev.to/tauri)
![](https://img.shields.io/github/workflow/status/tauri-apps/tauri/test%20library?label=test%20library)
[![test core](https://img.shields.io/github/actions/workflow/status/tauri-apps/tauri/test-core.yml?label=test%20core&logo=github)](https://github.com/tauri-apps/tauri/actions/workflows/test-core.yml)
[![devto](https://img.shields.io/badge/documentation-site-purple.svg)](https://tauri.app)
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)

View File

@@ -1,10 +1,11 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
use std::path::{Path, PathBuf};
use std::{ffi::OsStr, str::FromStr};
use base64::Engine;
use proc_macro2::TokenStream;
use quote::quote;
use sha2::{Digest, Sha256};
@@ -57,7 +58,10 @@ fn map_core_assets(
let mut hasher = Sha256::new();
hasher.update(&script);
let hash = hasher.finalize();
scripts.push(format!("'sha256-{}'", base64::encode(hash)));
scripts.push(format!(
"'sha256-{}'",
base64::engine::general_purpose::STANDARD.encode(hash)
));
}
csp_hashes
.inline_scripts
@@ -74,9 +78,10 @@ fn map_core_assets(
let mut hasher = Sha256::new();
hasher.update(tauri_utils::pattern::isolation::IFRAME_STYLE);
let hash = hasher.finalize();
csp_hashes
.styles
.push(format!("'sha256-{}'", base64::encode(hash)));
csp_hashes.styles.push(format!(
"'sha256-{}'",
base64::engine::general_purpose::STANDARD.encode(hash)
));
}
}
@@ -171,10 +176,10 @@ pub fn context_codegen(data: ContextData) -> Result<TokenStream, EmbeddedAssetsE
.tauri
.security
.dev_csp
.clone()
.or_else(|| config.tauri.security.csp.clone())
.as_ref()
.or(config.tauri.security.csp.as_ref())
} else {
config.tauri.security.csp.clone()
config.tauri.security.csp.as_ref()
};
if csp.is_some() {
options = options.with_csp();
@@ -345,14 +350,11 @@ pub fn context_codegen(data: ContextData) -> Result<TokenStream, EmbeddedAssetsE
}
}
let out_path = out_dir.join("Info.plist");
info_plist
.to_file_xml(&out_path)
.to_file_xml(out_dir.join("Info.plist"))
.expect("failed to write Info.plist");
let info_plist_path = out_path.display().to_string();
quote!({
tauri::embed_plist::embed_info_plist!(#info_plist_path);
tauri::embed_plist::embed_info_plist!(concat!(std::env!("OUT_DIR"), "/Info.plist"));
})
} else {
quote!(())
@@ -468,15 +470,20 @@ fn ico_icon<P: AsRef<Path>>(
let width = entry.width();
let height = entry.height();
let out_path = out_dir.join(path.file_name().unwrap());
let icon_file_name = path.file_name().unwrap();
let out_path = out_dir.join(icon_file_name);
write_if_changed(&out_path, &rgba).map_err(|error| EmbeddedAssetsError::AssetWrite {
path: path.to_owned(),
error,
})?;
let out_path = out_path.display().to_string();
let icon = quote!(Some(#root::Icon::Rgba { rgba: include_bytes!(#out_path).to_vec(), width: #width, height: #height }));
let icon_file_name = icon_file_name.to_str().unwrap();
let icon = quote!(Some(
#root::Icon::Rgba {
rgba: include_bytes!(concat!(std::env!("OUT_DIR"), "/", #icon_file_name)).to_vec(),
width: #width,
height: #height
}));
Ok(icon)
}
@@ -492,9 +499,10 @@ fn raw_icon<P: AsRef<Path>>(out_dir: &Path, path: P) -> Result<TokenStream, Embe
error,
})?;
let out_path = out_path.display().to_string();
let icon = quote!(Some(include_bytes!(#out_path).to_vec()));
let icon_path = path.file_name().unwrap().to_str().unwrap().to_string();
let icon = quote!(::std::option::Option::Some(
include_bytes!(concat!(std::env!("OUT_DIR"), "/", #icon_path)).to_vec()
));
Ok(icon)
}
@@ -511,6 +519,13 @@ fn png_icon<P: AsRef<Path>>(
let mut reader = decoder
.read_info()
.unwrap_or_else(|e| panic!("failed to read icon {}: {}", path.display(), e));
let (color_type, _) = reader.output_color_type();
if color_type != png::ColorType::Rgba {
panic!("icon {} is not RGBA", path.display());
}
let mut buffer: Vec<u8> = Vec::new();
while let Ok(Some(row)) = reader.next_row() {
buffer.extend(row.data());
@@ -518,15 +533,21 @@ fn png_icon<P: AsRef<Path>>(
let width = reader.info().width;
let height = reader.info().height;
let out_path = out_dir.join(path.file_name().unwrap());
let icon_file_name = path.file_name().unwrap();
let out_path = out_dir.join(icon_file_name);
write_if_changed(&out_path, &buffer).map_err(|error| EmbeddedAssetsError::AssetWrite {
path: path.to_owned(),
error,
})?;
let out_path = out_path.display().to_string();
let icon = quote!(Some(#root::Icon::Rgba { rgba: include_bytes!(#out_path).to_vec(), width: #width, height: #height }));
let icon_file_name = icon_file_name.to_str().unwrap();
let icon = quote!(Some(
#root::Icon::Rgba {
rgba: include_bytes!(concat!(std::env!("OUT_DIR"), "/", #icon_file_name)).to_vec(),
width: #width,
height: #height,
}
));
Ok(icon)
}

View File

@@ -1,7 +1,8 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
use base64::Engine;
use proc_macro2::TokenStream;
use quote::{quote, ToTokens, TokenStreamExt};
use sha2::{Digest, Sha256};
@@ -181,9 +182,10 @@ impl CspHashes {
})?,
);
let hash = hasher.finalize();
self
.scripts
.push(format!("'sha256-{}'", base64::encode(hash)));
self.scripts.push(format!(
"'sha256-{}'",
base64::engine::general_purpose::STANDARD.encode(hash)
));
}
}
@@ -431,6 +433,7 @@ impl ToTokens for EmbeddedAssets {
// we expect phf related items to be in path when generating the path code
tokens.append_all(quote! {{
#[allow(unused)]
use ::tauri::utils::assets::{CspHash, EmbeddedAssets, phf, phf::phf_map};
EmbeddedAssets::new(phf_map! { #assets }, &[#global_hashes], phf_map! { #html_hashes })
}});

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -0,0 +1,14 @@
[package]
name = "tauri-config-schema"
version = "0.0.0"
edition = "2021"
publish = false
[build-dependencies]
tauri-utils = { version = "1.0.0", features = [
"schema",
], path = "../tauri-utils" }
schemars = { version = "0.8", features = ["url", "preserve_order"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
url = { version = "2.3", features = ["serde"] }

View File

@@ -1,4 +1,4 @@
// Copyright 2019-2022 Tauri Programme within The Commons Conservancy
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

View File

@@ -105,6 +105,7 @@
"print": false,
"requestUserAttention": false,
"setAlwaysOnTop": false,
"setClosable": false,
"setContentProtected": false,
"setCursorGrab": false,
"setCursorIcon": false,
@@ -116,7 +117,9 @@
"setIcon": false,
"setIgnoreCursorEvents": false,
"setMaxSize": false,
"setMaximizable": false,
"setMinSize": false,
"setMinimizable": false,
"setPosition": false,
"setResizable": false,
"setSize": false,
@@ -163,6 +166,8 @@
},
"security": {
"dangerousDisableAssetCspModification": false,
"dangerousRemoteDomainIpcAccess": [],
"dangerousUseHttpScheme": false,
"freezePrototype": false
},
"updater": {
@@ -208,7 +213,7 @@
"additionalProperties": false,
"definitions": {
"PackageConfig": {
"description": "The package configuration.",
"description": "The package configuration.\n\nSee more: https://tauri.app/v1/api/config#packageconfig",
"type": "object",
"properties": {
"productName": {
@@ -220,7 +225,7 @@
"pattern": "^[^/\\:*?\"<>|]+$"
},
"version": {
"description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field.",
"description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field. If removed the version number from `Cargo.toml` is used.",
"default": null,
"type": [
"string",
@@ -231,7 +236,7 @@
"additionalProperties": false
},
"TauriConfig": {
"description": "The Tauri configuration object.",
"description": "The Tauri configuration object.\n\nSee more: https://tauri.app/v1/api/config#tauriconfig",
"type": "object",
"properties": {
"pattern": {
@@ -382,6 +387,7 @@
"print": false,
"requestUserAttention": false,
"setAlwaysOnTop": false,
"setClosable": false,
"setContentProtected": false,
"setCursorGrab": false,
"setCursorIcon": false,
@@ -393,7 +399,9 @@
"setIcon": false,
"setIgnoreCursorEvents": false,
"setMaxSize": false,
"setMaximizable": false,
"setMinSize": false,
"setMinimizable": false,
"setPosition": false,
"setResizable": false,
"setSize": false,
@@ -415,6 +423,8 @@
"description": "Security configuration.",
"default": {
"dangerousDisableAssetCspModification": false,
"dangerousRemoteDomainIpcAccess": [],
"dangerousUseHttpScheme": false,
"freezePrototype": false
},
"allOf": [
@@ -508,7 +518,7 @@
]
},
"WindowConfig": {
"description": "The window configuration object.",
"description": "The window configuration object.\n\nSee more: https://tauri.app/v1/api/config#windowconfig",
"type": "object",
"properties": {
"label": {
@@ -603,7 +613,22 @@
"format": "double"
},
"resizable": {
"description": "Whether the window is resizable or not.",
"description": "Whether the window is resizable or not. When resizable is set to false, native window's maximize button is automatically disabled.",
"default": true,
"type": "boolean"
},
"maximizable": {
"description": "Whether the window's native maximize button is enabled or not. If resizable is set to false, this setting is ignored.\n\n## Platform-specific\n\n- **macOS:** Disables the \"zoom\" button in the window titlebar, which is also used to enter fullscreen mode. - **Linux / iOS / Android:** Unsupported.",
"default": true,
"type": "boolean"
},
"minimizable": {
"description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
"default": true,
"type": "boolean"
},
"closable": {
"description": "Whether the window's native close button is enabled or not.\n\n## Platform-specific\n\n- **Linux:** \"GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible\" - **iOS / Android:** Unsupported.",
"default": true,
"type": "boolean"
},
@@ -764,7 +789,7 @@
]
},
"CliConfig": {
"description": "describes a CLI configuration",
"description": "describes a CLI configuration\n\nSee more: https://tauri.app/v1/api/config#cliconfig",
"type": "object",
"properties": {
"description": {
@@ -1010,7 +1035,7 @@
"additionalProperties": false
},
"BundleConfig": {
"description": "Configuration for tauri-bundler.",
"description": "Configuration for tauri-bundler.\n\nSee more: https://tauri.app/v1/api/config#bundleconfig",
"type": "object",
"required": [
"identifier"
@@ -1051,13 +1076,14 @@
},
"resources": {
"description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
"anyOf": [
{
"$ref": "#/definitions/BundleResources"
},
{
"type": "null"
}
]
},
"copyright": {
"description": "A copyright string associated with your application.",
@@ -1235,8 +1261,27 @@
}
]
},
"BundleResources": {
"description": "Definition for bundle resources. Can be either a list of paths to include or a map of source to target paths.",
"anyOf": [
{
"description": "A list of paths to include.",
"type": "array",
"items": {
"type": "string"
}
},
{
"description": "A map of source to target paths.",
"type": "object",
"additionalProperties": {
"type": "string"
}
}
]
},
"AppImageConfig": {
"description": "Configuration for AppImage bundles.",
"description": "Configuration for AppImage bundles.\n\nSee more: https://tauri.app/v1/api/config#appimageconfig",
"type": "object",
"properties": {
"bundleMediaFramework": {
@@ -1248,7 +1293,7 @@
"additionalProperties": false
},
"DebConfig": {
"description": "Configuration for Debian (.deb) bundles.",
"description": "Configuration for Debian (.deb) bundles.\n\nSee more: https://tauri.app/v1/api/config#debconfig",
"type": "object",
"properties": {
"depends": {
@@ -1268,12 +1313,19 @@
"additionalProperties": {
"type": "string"
}
},
"desktopTemplate": {
"description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"MacConfig": {
"description": "Configuration for the macOS bundles.",
"description": "Configuration for the macOS bundles.\n\nSee more: https://tauri.app/v1/api/config#macconfig",
"type": "object",
"properties": {
"frameworks": {
@@ -1333,7 +1385,7 @@
"additionalProperties": false
},
"WindowsConfig": {
"description": "Windows bundler configuration.",
"description": "Windows bundler configuration.\n\nSee more: https://tauri.app/v1/api/config#windowsconfig",
"type": "object",
"properties": {
"digestAlgorithm": {
@@ -1431,7 +1483,7 @@
"additionalProperties": false
},
{
"description": "Download the bootstrapper and run it. Requires internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
"description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
"type": "object",
"required": [
"type"
@@ -1452,7 +1504,7 @@
"additionalProperties": false
},
{
"description": "Embed the bootstrapper and run it. Requires internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
"description": "Embed the bootstrapper and run it. Requires an internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
"type": "object",
"required": [
"type"
@@ -1473,7 +1525,7 @@
"additionalProperties": false
},
{
"description": "Embed the offline installer and run it. Does not require internet connection. Increases the installer size by around 127MB.",
"description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
"type": "object",
"required": [
"type"
@@ -1517,7 +1569,7 @@
]
},
"WixConfig": {
"description": "Configuration for the MSI bundle using WiX.",
"description": "Configuration for the MSI bundle using WiX.\n\nSee more: https://tauri.app/v1/api/config#wixconfig",
"type": "object",
"properties": {
"language": {
@@ -1642,7 +1694,7 @@
]
},
"WixLanguageConfig": {
"description": "Configuration for a target language for the WiX build.",
"description": "Configuration for a target language for the WiX build.\n\nSee more: https://tauri.app/v1/api/config#wixlanguageconfig",
"type": "object",
"properties": {
"localePath": {
@@ -1659,6 +1711,13 @@
"description": "Configuration for the Installer bundle using NSIS.",
"type": "object",
"properties": {
"template": {
"description": "A custom .nsi template to use.",
"type": [
"string",
"null"
]
},
"license": {
"description": "The path to the license file to render on the installer.",
"type": [
@@ -1695,6 +1754,42 @@
"$ref": "#/definitions/NSISInstallerMode"
}
]
},
"languages": {
"description": "A list of installer languages. By default the OS language is used. If the OS language is not in the list of languages, the first language will be used. To allow the user to select the language, set `display_language_selector` to `true`.\n\nSee <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> for the complete list of languages.",
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"customLanguageFiles": {
"description": "A key-value pair where the key is the language and the value is the path to a custom `.nsh` file that holds the translated text for tauri's custom messages.\n\nSee <https://github.com/tauri-apps/tauri/blob/dev/tooling/bundler/src/bundle/windows/templates/nsis-languages/English.nsh> for an example `.nsh` file.\n\n**Note**: the key must be a valid NSIS language and it must be added to [`NsisConfig`] languages array,",
"type": [
"object",
"null"
],
"additionalProperties": {
"type": "string"
}
},
"displayLanguageSelector": {
"description": "Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not. By default the OS language is selected, with a fallback to the first language in the `languages` array.",
"default": false,
"type": "boolean"
},
"compression": {
"description": "Set the compression algorithm used to compress files in the installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
"anyOf": [
{
"$ref": "#/definitions/NsisCompression"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
@@ -1725,6 +1820,32 @@
}
]
},
"NsisCompression": {
"description": "Compression algorithms used in the NSIS installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
"oneOf": [
{
"description": "ZLIB uses the deflate algorithm, it is a quick and simple method. With the default compression level it uses about 300 KB of memory.",
"type": "string",
"enum": [
"zlib"
]
},
{
"description": "BZIP2 usually gives better compression ratios than ZLIB, but it is a bit slower and uses more memory. With the default compression level it uses about 4 MB of memory.",
"type": "string",
"enum": [
"bzip2"
]
},
{
"description": "LZMA (default) is a new compression method that gives very good compression ratios. The decompression speed is high (10-20 MB/s on a 2 GHz CPU), the compression speed is lower. The memory size that will be used for decompression is the dictionary size plus a few KBs, the default is 8 MB.",
"type": "string",
"enum": [
"lzma"
]
}
]
},
"AllowlistConfig": {
"description": "Allowlist configuration. The allowlist is a translation of the [Cargo allowlist features](https://docs.rs/tauri/latest/tauri/#cargo-allowlist-features).\n\n# Notes\n\n- Endpoints that don't have their own allowlist option are enabled by default. - There is only \"opt-in\", no \"opt-out\". Setting an option to `false` has no effect.\n\n# Examples\n\n- * [`\"app-all\": true`](https://tauri.app/v1/api/config/#appallowlistconfig.all) will make the [hide](https://tauri.app/v1/api/js/app#hide) endpoint be available regardless of whether `hide` is set to `false` or `true` in the allowlist.",
"type": "object",
@@ -1768,6 +1889,7 @@
"print": false,
"requestUserAttention": false,
"setAlwaysOnTop": false,
"setClosable": false,
"setContentProtected": false,
"setCursorGrab": false,
"setCursorIcon": false,
@@ -1779,7 +1901,9 @@
"setIcon": false,
"setIgnoreCursorEvents": false,
"setMaxSize": false,
"setMaximizable": false,
"setMinSize": false,
"setMinimizable": false,
"setPosition": false,
"setResizable": false,
"setSize": false,
@@ -1941,7 +2065,7 @@
"additionalProperties": false
},
"FsAllowlistConfig": {
"description": "Allowlist for the file system APIs.",
"description": "Allowlist for the file system APIs.\n\nSee more: https://tauri.app/v1/api/config#fsallowlistconfig",
"type": "object",
"properties": {
"scope": {
@@ -2035,13 +2159,20 @@
"items": {
"type": "string"
}
},
"requireLiteralLeadingDot": {
"description": "Whether or not paths that contain components that start with a `.` will require that `.` appears literally in the pattern; `*`, `?`, `**`, or `[...]` will not match. This is useful because such files are conventionally considered hidden on Unix systems and it might be desirable to skip them when listing files.\n\nDefaults to `true` on Unix systems and `false` on Windows",
"type": [
"boolean",
"null"
]
}
}
}
]
},
"WindowAllowlistConfig": {
"description": "Allowlist for the window APIs.",
"description": "Allowlist for the window APIs.\n\nSee more: https://tauri.app/v1/api/config#windowallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2069,6 +2200,21 @@
"default": false,
"type": "boolean"
},
"setMaximizable": {
"description": "Allows setting whether the window's native maximize button is enabled or not.",
"default": false,
"type": "boolean"
},
"setMinimizable": {
"description": "Allows setting whether the window's native minimize button is enabled or not.",
"default": false,
"type": "boolean"
},
"setClosable": {
"description": "Allows setting whether the window's native close button is enabled or not.",
"default": false,
"type": "boolean"
},
"setTitle": {
"description": "Allows changing the window title.",
"default": false,
@@ -2203,7 +2349,7 @@
"additionalProperties": false
},
"ShellAllowlistConfig": {
"description": "Allowlist for the shell APIs.",
"description": "Allowlist for the shell APIs.\n\nSee more: https://tauri.app/v1/api/config#shellallowlistconfig",
"type": "object",
"properties": {
"scope": {
@@ -2334,7 +2480,7 @@
]
},
"DialogAllowlistConfig": {
"description": "Allowlist for the dialog APIs.",
"description": "Allowlist for the dialog APIs.\n\nSee more: https://tauri.app/v1/api/config#dialogallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2371,7 +2517,7 @@
"additionalProperties": false
},
"HttpAllowlistConfig": {
"description": "Allowlist for the HTTP APIs.",
"description": "Allowlist for the HTTP APIs.\n\nSee more: https://tauri.app/v1/api/config#httpallowlistconfig",
"type": "object",
"properties": {
"scope": {
@@ -2397,7 +2543,7 @@
"additionalProperties": false
},
"HttpAllowlistScope": {
"description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples: - \"https://**\": allows all HTTPS urls - \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path - \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
"description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples: - \"https://*\": allows all HTTPS urls - \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path - \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
"type": "array",
"items": {
"type": "string",
@@ -2405,7 +2551,7 @@
}
},
"NotificationAllowlistConfig": {
"description": "Allowlist for the notification APIs.",
"description": "Allowlist for the notification APIs.\n\nSee more: https://tauri.app/v1/api/config#notificationallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2417,7 +2563,7 @@
"additionalProperties": false
},
"GlobalShortcutAllowlistConfig": {
"description": "Allowlist for the global shortcut APIs.",
"description": "Allowlist for the global shortcut APIs.\n\nSee more: https://tauri.app/v1/api/config#globalshortcutallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2429,7 +2575,7 @@
"additionalProperties": false
},
"OsAllowlistConfig": {
"description": "Allowlist for the OS APIs.",
"description": "Allowlist for the OS APIs.\n\nSee more: https://tauri.app/v1/api/config#osallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2441,7 +2587,7 @@
"additionalProperties": false
},
"PathAllowlistConfig": {
"description": "Allowlist for the path APIs.",
"description": "Allowlist for the path APIs.\n\nSee more: https://tauri.app/v1/api/config#pathallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2453,7 +2599,7 @@
"additionalProperties": false
},
"ProtocolAllowlistConfig": {
"description": "Allowlist for the custom protocols.",
"description": "Allowlist for the custom protocols.\n\nSee more: https://tauri.app/v1/api/config#protocolallowlistconfig",
"type": "object",
"properties": {
"assetScope": {
@@ -2479,7 +2625,7 @@
"additionalProperties": false
},
"ProcessAllowlistConfig": {
"description": "Allowlist for the process APIs.",
"description": "Allowlist for the process APIs.\n\nSee more: https://tauri.app/v1/api/config#processallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2506,7 +2652,7 @@
"additionalProperties": false
},
"ClipboardAllowlistConfig": {
"description": "Allowlist for the clipboard APIs.",
"description": "Allowlist for the clipboard APIs.\n\nSee more: https://tauri.app/v1/api/config#clipboardallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2528,7 +2674,7 @@
"additionalProperties": false
},
"AppAllowlistConfig": {
"description": "Allowlist for the app APIs.",
"description": "Allowlist for the app APIs.\n\nSee more: https://tauri.app/v1/api/config#appallowlistconfig",
"type": "object",
"properties": {
"all": {
@@ -2550,7 +2696,7 @@
"additionalProperties": false
},
"SecurityConfig": {
"description": "Security configuration.",
"description": "Security configuration.\n\nSee more: https://tauri.app/v1/api/config#securityconfig",
"type": "object",
"properties": {
"csp": {
@@ -2588,6 +2734,19 @@
"$ref": "#/definitions/DisabledCspModificationKind"
}
]
},
"dangerousRemoteDomainIpcAccess": {
"description": "Allow external domains to send command to Tauri.\n\nBy default, external domains do not have access to `window.__TAURI__`, which means they cannot communicate with the commands defined in Rust. This prevents attacks where an externally loaded malicious or compromised sites could start executing commands on the user's device.\n\nThis configuration allows a set of external domains to have access to the Tauri commands. When you configure a domain to be allowed to access the IPC, all subpaths are allowed. Subdomains are not allowed.\n\n**WARNING:** Only use this option if you either have internal checks against malicious external sites or you can trust the allowed external sites. You application might be vulnerable to dangerous Tauri command related attacks otherwise.",
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/RemoteDomainAccessScope"
}
},
"dangerousUseHttpScheme": {
"description": "Sets whether the custom protocols should use `http://<scheme>.localhost` instead of the default `https://<scheme>.localhost` on Windows.\n\n**WARNING:** Using a `http` scheme will allow mixed content when trying to fetch `http` endpoints and is therefore less secure but will match the behavior of the `<scheme>://localhost` protocols used on macOS and Linux.",
"default": false,
"type": "boolean"
}
},
"additionalProperties": false
@@ -2640,8 +2799,50 @@
}
]
},
"RemoteDomainAccessScope": {
"description": "External command access definition.",
"type": "object",
"required": [
"domain",
"windows"
],
"properties": {
"scheme": {
"description": "The URL scheme to allow. By default, all schemas are allowed.",
"type": [
"string",
"null"
]
},
"domain": {
"description": "The domain to allow.",
"type": "string"
},
"windows": {
"description": "The list of window labels this scope applies to.",
"type": "array",
"items": {
"type": "string"
}
},
"plugins": {
"description": "The list of plugins that are allowed in this scope. The names should be without the `tauri-plugin-` prefix, for example `\"store\"` for `tauri-plugin-store`.",
"default": [],
"type": "array",
"items": {
"type": "string"
}
},
"enableTauriAPI": {
"description": "Enables access to the Tauri API.",
"default": false,
"type": "boolean"
}
},
"additionalProperties": false
},
"UpdaterConfig": {
"description": "The Updater configuration object.",
"description": "The Updater configuration object.\n\nSee more: https://tauri.app/v1/api/config#updaterconfig",
"type": "object",
"properties": {
"active": {
@@ -2690,7 +2891,7 @@
"format": "uri"
},
"UpdaterWindowsConfig": {
"description": "The updater configuration for Windows.",
"description": "The updater configuration for Windows.\n\nSee more: https://tauri.app/v1/api/config#updaterwindowsconfig",
"type": "object",
"properties": {
"installerArgs": {
@@ -2724,7 +2925,7 @@
]
},
{
"description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does (WiX).",
"description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does.",
"type": "string",
"enum": [
"quiet"
@@ -2740,7 +2941,7 @@
]
},
"SystemTrayConfig": {
"description": "Configuration for application system tray icon.",
"description": "Configuration for application system tray icon.\n\nSee more: https://tauri.app/v1/api/config#systemtrayconfig",
"type": "object",
"required": [
"iconPath"
@@ -2771,7 +2972,7 @@
"additionalProperties": false
},
"BuildConfig": {
"description": "The Build configuration object.",
"description": "The Build configuration object.\n\nSee more: https://tauri.app/v1/api/config#buildconfig",
"type": "object",
"properties": {
"runner": {
@@ -2934,7 +3135,7 @@
]
},
"PluginConfig": {
"description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
"description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.\n\nSee more: https://tauri.app/v1/api/config#pluginconfig",
"type": "object",
"additionalProperties": true
}

View File

@@ -0,0 +1,5 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
fn main() {}

View File

@@ -1,5 +1,23 @@
# Changelog
## \[1.4.1]
### Dependencies
- Upgraded to `tauri-utils@1.5.0`
- Upgraded to `tauri-codegen@1.4.1`
## \[1.4.0]
### Enhancements
- [`d68a25e3`](https://www.github.com/tauri-apps/tauri/commit/d68a25e32e012e57a9e5225b589b9ecbea70a887)([#6124](https://www.github.com/tauri-apps/tauri/pull/6124)) Improve compiler error message when generating an async command that has a reference input and don't return a Result.
## \[1.3.0]
- Bump minimum supported Rust version to 1.60.
- [5fdc616d](https://www.github.com/tauri-apps/tauri/commit/5fdc616df9bea633810dcb814ac615911d77222c) feat: Use the zbus-backed of notify-rust ([#6332](https://www.github.com/tauri-apps/tauri/pull/6332)) on 2023-03-31
## \[1.2.1]
- Fix `allowlist > app > show/hide` always disabled when `allowlist > app > all: false`.

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