Commit Graph

150 Commits

Author SHA1 Message Date
Amr Bashir
7213b9e472
feat(cli/add): add default permission to capabilities (#9124)
* feat(cli/add): add default permission to capabilities

also cleanup `tauri add` command

* license headers & clippy

* print permission name

* do not error out if default permission is not set

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-03-13 11:58:25 -03:00
Lucas Fernandes Nogueira
e227fe02f9
feat(core): allow defining global API script on plugin build (#9156)
* feat(core): allow defining global API script on plugin build

Adds `tauri_plugin::Builder::global_api_script_path` so plugin authors can define the JavaScript global API bindings (supposed to be injected to `window.__TAURI__`) at compile time, so the string is only part of the binary when withGlobalTauri is true.
Currently this needs to be done manually at runtime (and it's always added to the binary via include_str).

* prefix variable

* use list of scripts instead of combining them

* static str

* header [skip ci]

* slice
2024-03-12 12:01:13 -03:00
Dimitris Apostolou
26f0f71a40
chore: fix various typos (#9131) 2024-03-11 16:25:20 +02:00
Lucas Fernandes Nogueira
ba0206d8a3
feat(core): allow swapping the assets implementation (#9141) 2024-03-11 11:07:15 -03:00
Lucas Fernandes Nogueira
3e472d0afc
refactor(acl): permission and capability platforms are optional (#9115)
* refactor(acl): permission and capability platforms are optional

* add iterator version

* fix build

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-03-07 14:18:15 -03:00
Amr Bashir
bb23511ea8
feat: enhance multiple capabilities file format & fix mixed permissions schema (#9079)
* feat: enhance multiple capabilities file format & fix mixed permissions schema

* change files
2024-03-05 13:09:32 -03:00
Amr Bashir
4b75834a41
chore: update license headers 2024 (#9043) 2024-03-01 08:29:01 -03:00
Amr Bashir
8fcbce9404
fix(build): fix app permissions not included when there isn't any inlined plugins (#9025)
* fix(build): fix app permissions not included when there isn't any inlined plugins

* simplify

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-28 23:41:40 -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
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
0e8e9cd064
fix(build): move capability schema definitions to root (#8906) 2024-02-19 14:46:21 -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 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
19fb5f0b20
fix(build): fix writing schema file (#8782)
* fix(build): fix writing schema file

* Update .changes/schema_str.md
2024-02-05 14:32:27 -03: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
Fabian-Lars
4806f9fc70
fix(core): Rename FrontendDist::Dist to Dir (#8743)
* fix(core): Rename FrontendDist::Dist to Dir

* Directory

* fix totokens impl

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-03 09:08:20 -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
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
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
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
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
d70470f868
feat(build): save ACL metadata (#8678)
* feat(build): save ACL metadata

metadata will be read by the CLI later to show the user what has been enabled and what can be done

* lint

* fix cli
2024-01-25 15:33:36 -03:00
Lucas Fernandes Nogueira
fd4bf94d4c
refactor(acl): allow extending scope on the capability file (#8674) 2024-01-24 23:36:07 -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
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
Fabian-Lars
a547971209
fix(build): always invoke resource compiler on windows, fixes #8164 (#8168)
* fix(build): Always invoke resource compiler on windows, fixes #8164

* move all the stuff out of the version check

* check for icon path when setting the icon
2023-11-06 21:46:25 +02:00
Lucas Fernandes Nogueira
0601d5dddb
fix(docs): set the --cfg docsrs arg for docs.rs build (#8123) 2023-10-28 08:04:35 -03:00
Lucas Nogueira
c6c59cf237
Merge branch '1.x' into dev 2023-10-20 08:56:02 -03:00
Lucas Fernandes Nogueira
ebcc21e4b9
refactor: change prefix of hook env vars to TAURI_ENV_, closes #8054 (#8057) 2023-10-19 10:46:04 -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
i-c-b
100d9ede35
fix(core): Correctly detect Android Tauri configuration file, closes #7785 (#7802)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-09-12 13:18:23 -03:00
Amr Bashir
49beb67dab
ci: fix clippy lints (#7721)
* ci: fix clippy lints

* more lints
2023-08-31 13:53:15 +03:00
Lucas Fernandes Nogueira
560b34dd2a
fix(tauri-build): skip validating tray-icon feature flag (#7610) 2023-08-14 07:24:13 -07:00
Amr Bashir
7fb419c326
refactor: move to muda and tray_icon crates (#7535)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-08-13 22:25:50 -03:00
Lucas Fernandes Nogueira
7b45e7fa1b
feat(build): trigger rerun if plugin config env var changes (#7458) 2023-07-19 13:16:43 -03:00
Lucas Fernandes Nogueira
ecffaa2524
feat(build): skip writing manifest/entitlements when no changes found (#7457) 2023-07-19 13:16:35 -03:00
Lucas Fernandes Nogueira
1e1d839e7e
feat(build): add function to rewrite AndroidManifest.xml (#7450) 2023-07-19 08:15:08 -03:00
Lucas Fernandes Nogueira
522de0e788
feat(core): allow a plugin build script to read the plugin config object (#7447) 2023-07-18 11:04:15 -03:00
Lucas Fernandes Nogueira
aba04fa823
feat(build): add API to update the iOS entitlements file (#7448) 2023-07-18 10:20:55 -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
Fabian-Lars
290e366ae9
fix(build): Copy wv2 runtime in dev, fixes #7373 (#7419) 2023-07-13 14:34:31 -03:00
Simon Hyll
c34e37b1f7
docs: added rustdoc icons (#7253)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-06-19 21:51:05 -03:00
Lucas Fernandes Nogueira
7bbc626cc3
Merge remote-tracking branch 'origin/dev' into next (#7212) 2023-06-15 09:52:33 -03:00
Lucas Fernandes Nogueira
52474e479d
feat(cli): enhance Cargo features injection, add tests (#7141) 2023-06-06 13:29:28 -03:00
Lucas Fernandes Nogueira
a50f24b2bd
Merge remote-tracking branch 'origin/dev' into next (#7067)
Co-authored-by: wusyong <wusyong@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Simon Hyll <hyllsimon@gmail.com>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: chip <chip@chip.sh>
Co-authored-by: Raphii <iam@raphii.co>
Co-authored-by: Ronie Martinez <ronmarti18@gmail.com>
Co-authored-by: hanaTsuk1 <101488209+hanaTsuk1@users.noreply.github.com>
Co-authored-by: nathan-fall <39990940+nathan-fall@users.noreply.github.com>
Co-authored-by: Akshay <nerdy@peppe.rs>
Co-authored-by: KurikoMoe <kurikomoe@gmail.com>
Co-authored-by: Guilherme Oenning <me@goenning.net>
Co-authored-by: Pierre Cashon <biaocy91@gmail.com>
Co-authored-by: Jack Wills <32690432+mrjackwills@users.noreply.github.com>
Co-authored-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com>
Co-authored-by: Risto Stevcev <me@risto.codes>
Co-authored-by: Soumt <rltks1305@naver.com>
Co-authored-by: yutotnh <57719497+yutotnh@users.noreply.github.com>
Co-authored-by: Gökçe Merdun <agmmnn@gmail.com>
Co-authored-by: Nathanael Rea <Nathan@NathanaelRea.com>
Co-authored-by: Usman Rajab <usman.rajab@gmail.com>
Co-authored-by: Francis The Basilisk <36006338+snorkysnark@users.noreply.github.com>
Co-authored-by: Lej77 <31554212+Lej77@users.noreply.github.com>
Co-authored-by: Tomáš Diblík <dibla.tomas@post.cz>
Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com>
Co-authored-by: Pascal Sommer <Pascal-So@users.noreply.github.com>
Co-authored-by: Bo <bertonzh@gmail.com>
Co-authored-by: Kevin Yue <k3vinyue@gmail.com>
fixed grammar and typos (#6937)
Fix api.js docs pipeline with updated typedoc dependencies (#6945)
closes #6887 (#6922)
fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 (#6921)
fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865
fix broken symlinks in license files (#6336)
fix(cli): fix cli connection timeout to dev server (fix #6045) (#6046)
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)
closes #5491 (#6408)
fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 (#6935)
fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928
fix(updater): emit `UPTODATE` when server responds with 204, closes #6934 (#6970)
fix(core): unpin all dependencies, closes #6944 (#6966)
fix(bundler): Add new lang_file option in persian variant. (#6972)
fix(core/ipc): access url through webview native object, closes #6889 (#6976)
fix(core): remove trailing slash in http scope url, closes #5208 (#6974)
fix(core): remove trailing slash in http scope url, closes #5208
fix(cli): find correct binary when `--profile` is used, closes #6954 (#6979)
fix(cli): find correct binary when `--profile` is used, closes #6954
closes #6955 (#6987)
closes #6955
closes #6158 (#6969)
closes #6158
fix(cli): improve vs build tools detection (#6982)
fix: updated appimage script to follow symlinks for /usr/lib* (fix: #6992) (#6996)
fix(cli): correctly remove Cargo features (#7013)
Fix typo (#7012)
fix(cli): revert metadata.json field rename from #6795 (#7029)
closes #6732 (#6736)
fix: add missing file properties on Windows, closes #6676 (#6693)
fix(cli.js): detect node-20 binary (#6667)
fix version-or-publish workflow (#7031)
fix(cli/devserver): inject autoreload into HTML only, closes #6997 (#7032)
fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 (#7040)
fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036
fix(core): rewrite `asset` protocol streaming, closes #6375 (#6390)
closes #5939 (#5960)
fix(core): use `safe_block_on` (#7047)
closes #6859 (#6933)
closes #6955 (#6998)
fix(core): populate webview_attrs from config, closes #6794 (#6797)
closes #5176 (#5180)
fix: sound for notifications on windows (fix #6652) (#6680)
close native window's buttons, closes #2353 (#6665)
fix(bundler/nsis): calculate accurate app size, closes #7056 (#7057)
fix(tests): only download update when it is available (#7061)
closes #6706 (#6712)
fix(doc): correct the doc of `content_protected()` (#7065)
closes #6472 (#6530)
fix(macros): use full path to Result to avoid issues with type aliases (#7071)
2023-05-29 21:29:24 -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