Commit Graph

702 Commits

Author SHA1 Message Date
Amr Bashir
d1e77acd8d
refactor!(core): remove Icon enum and add Image type (#9011)
* refactor!(core): remove `Icon` enum and add `Image` type

* clippy

* revert api example config change

* Update image.rs

* fix build

* clippy

* change files

* add back removed methods as setter functions

* simplify error message

* Update .changes/runtime-icon-lifetime.md

* Update .changes/ico-featrue-flags.md

* Update core/tauri/src/image.rs

* update api lockfile

* update api ref

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-29 09:05:11 -03:00
Lucas Fernandes Nogueira
f5e7f3843e
fix(build): app ACL should be empty if no permissions are defined (#9024) 2024-02-28 19:53:48 -03:00
Lucas Fernandes Nogueira
d7f56fef85
feat(acl): allow a permission to apply to a subset of target platforms (#9014)
* feat(acl): allow a permission to apply to a subset of target platforms

* fix cli
2024-02-28 17:23:52 -03:00
Amr Bashir
f5f3ed5f6f
fix(cli): CLI path issues on mobile project initialization (#9009)
* fix(cli): fix panic when `android init` using cargo or yarn

closes #8531

* clippy

* try with fullpath

* clippy

* move cli

* Update test-android.yml

* add to path instead

* clippy

* try moving

* use cargo subcommand

* delete unused logic [skip ci]

* truncate on init [skip ci]

* enhance binary/args check

* update change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-28 14:38:24 -03:00
Lucas Fernandes Nogueira
3657ad82f8
feat(core): allow defining permissions for the app commands (#9008)
* feat(core): allow defining permissions for the app commands

* global scope

* command scope

* write to disk

* lint

* fix path

* get autogenerated commands from generate_handler macro

* revert

* remove cli

* use const instead of empty str
2024-02-28 08:45:28 -03:00
Amr Bashir
b9e6a01879
refactor(cli): use tauri/custom-protocol instead of relying on user having custom-protocol in their cargo features (#8937)
* refactor(cli): use `tauri/custom-protocol` instead of relying on user having `custom-protocol` in their cargo features

* tauri-build dev cfg

* pass build-feature when building apk

* run beforeBuildCommand before first build for plugins

* clippy

* fix

* mut

* enhance dev/prod checks

* lint [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-26 15:17:45 -03:00
Lucas Fernandes Nogueira
cbd9755e09
fix: process logs not showing on iOS (#8977) 2024-02-25 17:38:27 -03:00
Lucas Nogueira
5ddea72c50
chore: update cargo-mobile2 to 0.10.2 ref #8949 2024-02-22 15:35:14 -03:00
Lucas Fernandes Nogueira
a029b9f77e
feat(cli): codesign on iOS is optional for the simulator (#8910)
* feat(cli): codesign on iOS is optional for the simulator

* cargo-mobile2 0.10
2024-02-21 09:52:46 -03:00
Lucas Fernandes Nogueira
8d16a80d2f
feat(codegen): allow defining additional capabilities, closes #8798 (#8802)
* refactor(core): capabilities must be referenced on the Tauri config file

* add all capabilities by default

* feat(codegen): allow defining additional capabilities, closes #8798

* undo example

* lint

* move add_capability to runtime authority

* add change files

* go through code review

* fix tests

* remove tokens option
2024-02-19 11:13:36 -03:00
Lucas Nogueira
c426c0dca2
merge from 1.x 2024-02-19 08:03:05 -03:00
Lucas Nogueira
e816a46b95
chore: update lock files 2024-02-18 23:46:17 -03:00
Amr Bashir
77f49ad55e
refactor: optimize undecorated resizing handling (#8790)
* refactor: optimize undecorated resizing handling

* license

* separate modules

* fix windows

* rename export

* fix export

* same for gtk

* shared hit_test function

* change cursor on drag

* only set cursor on windows

* Revert "only set cursor on windows"

This reverts commit 03294a8430.

* fix flickering on Windows, change cursor on motion on Linux

* remove changing cursor on move on linux

* fix linux implementation

* clippy

* Windows, on left click only

* prevent on fullscreen, use OS border size on Windows

* fix build

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-18 15:56:57 -03:00
dependabot[bot]
d72b6f3842
chore(deps): bump undici from 5.26.5 to 5.28.3 in /examples/api (#8877)
Bumps [undici](https://github.com/nodejs/undici) from 5.26.5 to 5.28.3.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.26.5...v5.28.3)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-18 10:42:24 -03:00
Lucas Fernandes Nogueira
83a68deb56
refactor(core): allow referencing capabilities on the Tauri config file (#8797)
* refactor(core): capabilities must be referenced on the Tauri config file

* add all capabilities by default

* refactor(cli): reference all capabilities by default
2024-02-18 10:42:09 -03:00
Lucas Fernandes Nogueira
edb11c138d
feat(build): support plugins that are defined in app crate (#8781)
* feat(build): support plugins that are defined in app crate

* dx
2024-02-16 08:24:40 -03:00
Amr Bashir
16e550ec15
refactor(core): add webview events (#8844)
* refactor(core): add webview events

* license header

* clippy

* fix doctests

* more doctests

* fix JS `listen` with `EventTarget::Any`

* typo

* update module import

* clippy

* remove console.log

* fix api example

* fix documentation for emiTo [skip ci]

* actually add RunEvent::WebviewEvent

* update migration

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-16 08:07:39 -03:00
Lucas Fernandes Nogueira
2f55bfecbf
chore(deps): update wry to 0.36 (#8795)
* chore(deps): update wry to 0.36

* rwh 0.6

* remove raw_window_handle usage

* fix build

* fix windows test
2024-02-07 22:26:29 -03:00
Lucas Fernandes Nogueira
fb0d997117
fix(cli): regression on --config not accepting file paths (#8783)
* fix(cli): regression on --config not accepting file paths

* enhance dev server config parsing

* use serde_json::json!

* pass config to setup
2024-02-07 17:08:05 +02:00
Lucas Fernandes Nogueira
4e101f8016
refactor(core): enhance app rerun-if-changed for capabilities and frontend dist (#8756)
* refactor(core): enhance app rerun-if-changed for capabilities and frontend dist

* always rerun-if-changed=capabilities

* fix todo

* rerun if plugin permissions change

* add change files
2024-02-04 11:42:13 -03:00
Lucas Fernandes Nogueira
0f2789cd67
fix(build): do not rewrite unchanged schema (#8757)
* fix(build): do not rewrite unchanged schema

* typo
2024-02-04 12:45:59 +01:00
Lucas Nogueira
f1d0f452a2
chore: pin tao to 0.25 2024-02-03 11:57:54 -03:00
Lucas Nogueira
ab57f9531a
chore: run pnpm format on the repo 2024-02-03 11:08:13 -03:00
github-actions[bot]
88a1dd17c3
Apply Version Updates From Current Changes (#8638)
* apply version updates

* promote to beta

* fix check version

* update dependencies section [skip ci]

* update npm versions

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-03 10:59:09 -03:00
Lucas Fernandes Nogueira
3364b6727c
fix(cli): build command features and bundles can have multiple values (#8744)
* fix(cli): build command  and  can have multiple values

* add value delimiter on bundles

* gitignore dist
2024-02-03 09:14:02 -03:00
Lucas Fernandes Nogueira
0cdfda2876
refactor: move plugin functionality from tauri-build to tauri-plugin (#8737)
* refactor: move plugin functionality from tauri-build to tauri-plugin

* fixes

* fix build

* move docs function

* autogenerated

* fix path
2024-02-03 08:48:57 -03:00
Lucas Fernandes Nogueira
0a01b5b720
fix(core): do not embed assets on dev when using a URL (#8739) 2024-02-03 08:18:59 -03:00
Amr Bashir
8de308d1bf
feat(core): implement new config structure (#8723)
* feat(core): implement new config structure

RFC#5 f3e82a6b0c/texts/0005-tauri-config-restructure.md

* fixes

* remove tauri-plugin copy [skip ci]

* move platform specific configs

* fix build

* fix cli

* doctests

* change files

* read updater plugin config on CLI

* doctests

* remove env var from docs

* fix getting pubkey

* add migrations

* clippy

* update change file [skip ci]

* rename frontendDist to prodFrontend?

* Revert "rename frontendDist to prodFrontend?"

This reverts commit ef7394f085.

* fix all_features check

* fix field name

* single license getter on bundler

* readd msiexec_args

* remove unused fixture

* update template

* Update .changes/tauri-bundle-settings-rfc-5.md

* Update .changes/config-restructure-rfc-5.md

* lint bundler, fix change file

* rename AppUrl to FrontendDist, add explicit variants for docs

* fix build

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-02-03 00:39:48 -03:00
Jingyu
b09b94204c
docs(examples): multiwindow example run command (#8735) 2024-02-02 19:54:59 +01:00
Amr Bashir
e8d3793c3c
feat(tauri-build): add config-json feature flag (#8732)
* feat(tauri-build): add `config-json` feature flag

This allows disabling rebuilding when `tauri.conf.json` when using another config format

see https://github.com/tauri-apps/tauri/issues/8721

* document feature flag

* Update .changes/tauri-build-config-json.md [skip ci]

* Update core/tauri/src/lib.rs [skip ci]

* disable default features for tauri-build on tauri, plugins

* fmt

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-02 14:11:59 -03:00
Lucas Fernandes Nogueira
3e5c28ff4f
feat(tauri-plugin): generate permissions reference markdown file for plugin (#8729)
* feat(acl): generate reference markdown file

* lint

* generate plugin docs instead
2024-02-01 17:14:23 -03:00
Lucas Fernandes Nogueira
7315189e76
chore: preserve order on schemas (#8724) 2024-02-01 09:16:10 -03:00
Amr Bashir
a093682d2d
refactor(core): refactor and fix event system following multiwebview support (#8621)
* clippy

* refactor(core): refactor and fix event system following multiwebview support

* update documentation

* update js docs

* lint

* clippy

* update multiwindow example [skip ci]

* enhance event tests

* fix example

* Update .changes/tauri-event-after-multiwebview.md

Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>

* fix tests

* add diagram

* Add `App/AppHandle` even target

* Discard changes to examples/api/src-tauri/tauri-plugin-sample/permissions/schemas/schema.json

* revert accidental changes

* regenerate schemas

* fix doctests

* add helper methods

* update docs

* update api

* update docs [skip ci]

* update docs [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>
2024-02-01 08:06:27 -03:00
Lucas Fernandes Nogueira
af61023273
refactor(core)!: Window::close triggers RunEvent::CloseRequested (#8710)
* refactor(core): Window::close triggers RunEvent::CloseRequested

* Update .changes/runtime-wry-window-close-event.md

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

* add destroy [skip ci]

* change files

* delete files

* fix tests

* fix tests

* fix test impl of the close flow

* fmt

* build bundle

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-01-31 14:54:49 -03:00
Lucas Fernandes Nogueira
aa758a850f
refactor(core): delete the command module (#8716) 2024-01-31 14:02:52 -03:00
Amr Bashir
9eaeb5a8cd
refactor: refactor parent APIs on WindowBuilder (#8622)
* refactor: refactor parent APIs on `WindowBuilder`

closes #8587 #1643

* fix build

* clippy

* support parent in JS and config

* change files

* fix build

* clippy

* fix doctests

* fix linux build

* fix doctests

* update docs

* fix api, update example to use JS API

* fix merge

* lint

* fix tests on windows

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 13:59:14 -03:00
Amr Bashir
e1eb911f5e
fix(menu): ensure init & drop is done on main thread (#8582)
* fix(menu): ensure init & drop is done on main thread

* move macros back

* fix doctests

* fix macos doctests

* generate inner types and add drop implementation on inner

* clippy

* fix leftoever merge conflicts

* fix doctests

* update api example

* add missing change file

* move macro

* fix tray import

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 12:01:05 -03:00
Amr Bashir
58fe2e812a
fix: improvements and ipc fixes for loading window content using custom protocol (#8670)
* fix: improvements and ipc fixes for loading window content using custom protocol

closes #5478

* Discard changes to tooling/cli/Cargo.lock

* clippy

* fix tests

* typo

* fix webviewurl deserialize

* resolve todo, fixes

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 09:38:25 -03:00
Lucas Fernandes Nogueira
00e1567584
refactor(core): exit() and restart() triggers ExitRequested and Exit (#8708)
* refactor(core): exit() and restart() triggers ExitRequested and Exit

* update docs

* update doc
2024-01-30 12:10:22 -03:00
Lucas Fernandes Nogueira
57e3d43d96
feat(acl): generate schema for scope (#8690)
* feat(acl): generate schema for scope

* allow plugin to define its global scope schema

* refactor to use schemas folder instead of individual files

* change signature

* delete .schema.json files
2024-01-29 13:36:31 -03:00
Lucas Fernandes Nogueira
ec9818accb
refactor(core)!: App::run_iteration improvements (#8696)
* refactor(core): App::run_iteration improvements

* lint

* fixes

* fix exit

* Apply suggestions from code review

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

* update cargo.toml

* booooool

* fix mock runtime

* fix doctests

* fix doctest againrrrr

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-01-29 10:52:44 -03:00
Lucas Fernandes Nogueira
049ca2d54f
fix(examples): deadlock on api example unit test (#8671) 2024-01-24 21:52:28 -03:00
Lucas Fernandes Nogueira
30a64a9cda
refactor: global scope error handling, fix usage with multiple plugins (#8669)
* refactor: global scope error handling, fix usage with multiple plugins

* lint
2024-01-24 20:57:46 -03:00
Lucas Fernandes Nogueira
c77b40324e
refactor(core): add support to multiple webviews on a Tauri window (#8280)
* feat: update to latest wry

* wry dev branch [skip ci]

* fix linux [skip ci]

* refactor(runtime): split webview and window types

* split dispatch

* implement create_webview

* move webview message

* wip webview mod

* create webview manager, finish webview struct and builder

* fix tests and docs

* rename WindowUrl to WebviewUrl

* update examples

* event refactor

* update JS API

* fix events

* update example

* add WebviewWindow class on JS

* fix macos build

* allow creating window+webview on the same runtime call

* rename tauri://window-created to tauri://webview-created

* Window::add_child

* use inner_size from webview on macOS

* add multiwebview example

* automatically resize webviews on window resize

* fix tests

* set_position, set_size

* position, size getters

* set_focus

* add close fn

* update mock runtime

* lint [skip ci]

* fix inner_size getter [skip ci]

* import hwnd [skip ci]

* update webview bound ratios on set_size/set_position

* add auto_resize option

* fix android

* fix build on windows

* typo

* with_webview isnt desktop only

* add WebviewWindow rust struct (and builder)

* fix build on android

* license header

* fix macos/windows

* fix macos build

* resolve todo

* handle window not found

* hide unstable features

* document unstable feature [skip ci]

* webview plugin permissions

* hide more stuff

* fix doctests

* typos

* add change files

* fix examples

* rename hook
2024-01-24 11:05:18 -03:00
Lucas Fernandes Nogueira
74a2a6036a
chore: add change files for #8428 (#8661) 2024-01-23 13:19:51 -03:00
tweidinger
3c2f79f6f3
Tauri ACL/Allowlist v2 Implementation and Plugin System Refactor (#8428)
* tauri-plugin concept

* wip

* move command module to its own directory

* wip: new command traits and generated code

* wip: whip

* wip: static dispatch

there is a man standing behind me

* wip

* re-add authority

* fix build [skip ci]

* parse plugin permissions

* merge permission files [skip ci]

* parse capabilities [skip ci]

* resolve acl (untested) [skip ci]

* split functionality, add some docs

* remove command2 stuff

* actually check runtime authority

* small fixes [skip ci]

* add function to auto generate basic permission for a command [skip ci]

* retrieve command scope, implement CommandArg [skip ci]

* fix tests [skip ci]

* global scope

* lint

* license headers [skip ci]

* skip canonicalize

* separate scope type in example

* remove inlinedpermission struct [skip ci]

* permission file schema

* capabilities schema

* move items from tauri-plugin to tauri-utils

this allows tauri-plugin to depend on tauri directly again
which will be used by the runtime feature as a superset to
existing plugin traits

* enable schema and glob [skip ci]

* fix glob [skip ci]

* fix capability schema [skip ci]

* enhance schema for permission set possible values [skip ci]

* permission set can reference other sets [skip ci]

* setup tests for resolving ACL

* fixture for permission set [skip ci]

* remote context test and small fix[skip ci]

* ignore empty scope [skip ci]

* code review [skip ci]

* lint [skip ci]

* runtime fixes

* readd schema feature on tauri-config-schema [skip ci]

* remove plugin example from workspace, it breaks workspace features resolution [skip ci]

* scope as array, add test [skip ci]

* accept new shapshot [skip ci]

* core plugin permissions, default is now a set

* license headers

* fix  on windows

* update global api

* glob is no longer optional on tauri-utils

* add missing permissions on api example [skip ci]

* remove ipc scope and dangerous remote access config

* lint

* fix asset scope usage

* create out dir [skip ci]

* reuse cargo_pkg_name [skip ci]

* capability window glob pattern [skip ci]

* add platforms for capability [skip ci]

* per platform schema [skip ci]

* lint [skip ci]

* rename allowlist build mod [skip ci]

* check restricted visibility

* simplify capability target [skip ci]

* hide codegen build behind tauri-build::try_run

* optimize build scripts [skip ci]

* fix tests

* tests for RuntimeAuthority::resolve_access

* remote domain glob pattern

* lint

---------

Co-authored-by: Chip Reed <chip@chip.sh>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-22 21:24:15 -03:00
dependabot[bot]
303708d0aa
chore(deps-dev): bump vite from 4.4.12 to 4.5.2 in /examples/api (#8646)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.12 to 4.5.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-20 04:50:55 +02:00
Lucas Nogueira
d621d3437c
feat: add tracing (port from #8289) (#8607)
* feat(tracing): add IPC tracing

* span for deserialization

* trace spans for IPC command handlers

* fix spans usage

* app tracing [skip ci]

* window tracing

* fix run never resolving all spans

* fix draw not entered

* change level

* feat(core): Manager::emit_filter and optimize serialization (#7512)

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>

* event spans

* lint & fix tests

* change eval to run sync

* fix instrument

* update wry

* change separator

* Update core/tauri/src/plugin.rs

Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>

* Update core/tauri/src/window.rs

Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>

* Update core/tauri/src/window.rs

Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>

* Update core/tauri/src/window.rs

Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>

* Update core/tauri/src/window.rs

Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>

* instrument separators

* remove on_event trace

* skip all arguments on App::build tracing

* ipc spans adjustments

* delete change file

* improve how request and response are added as values (serialize)

* do not run evalScript sync on android :( freezes the app

* wry 0.35.2

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Jonas Kruckenberg <118265418+CrabNejonas@users.noreply.github.com>
2024-01-16 02:37:50 +02:00
Fabian-Lars
5cb196976e
fix(examples): Update web example to latest dialog plugin (#8567) 2024-01-09 02:03:23 +02:00
Palash Bansal
27bad32d4d
feat: Add files field in macos build config, closes #3290 (#7798)
* Add appContents field in macos tauri config.

* Change MacConfig::appContents to MacConfig::files to make it similar to DebConfig::files.

* Change appContents to files in helloworld/tauri.conf.json

* use common::copy_dir helper

* add change files [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-12-28 12:10:50 -03:00