Compare commits

..
Author SHA1 Message Date
amrbashir bc53cf11db use ShellExecuteExW 2024-10-30 01:55:03 +03:00
amrbashir 539d41ace7 use dunce 2024-10-30 01:38:01 +03:00
amrbashir 1ec8844b0e lock file 2024-10-30 00:37:30 +03:00
amrbashir b5c55d4ba2 Merge branch 'v2' into feat/shell-show-item-in-dir 2024-10-30 00:37:20 +03:00
阿良仔andGitHub 4341d7f500 fix(sql): replace Mutex with RwLock to enable concurrent SQL execution (#1972) 2024-10-26 13:19:59 +02:00
Amr BashirandGitHub 77149dc432 fix(fs): fix writeFile converting UTF-8 characters in path into replacement character (#1965) 2024-10-22 08:17:37 +03:00
525abc4be5 Publish New Versions (v2) (#1961)
Co-authored-by: amrbashir <amrbashir@users.noreply.github.com>
2024-10-21 15:13:27 +03:00
bWanShiTongandGitHub 14cee64c82 fix(fs): fix compilation on targets with pointer width 16 and 32 (#1958) 2024-10-21 15:07:55 +03:00
3fd283121f publish new versions (#1909)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-20 08:54:26 -03:00
ae8024565f perf(fs): improve FileHandle.read performance (#1950)
* perf(fs): improve `FileHandle.read` performance

* handle different target pointer width

* improve `writeTextFile` performance

* revert packageManager field

* change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-20 08:49:01 -03:00
TonyandGitHub 2302c2db1c fix(dialog): ask and confirm not using system button texts (#1910)
* Fix `ask`'s button texts being ok and cancel

* Update change file
2024-10-20 08:48:45 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44c50c1275 chore(deps): update rust crate tauri to 2.0.4 (#1952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 17:28:39 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
415bf2abc3 chore(deps): update eslint monorepo to v9.13.0 (#1951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 16:54:34 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
36207a93f3 chore(deps): update dependency @tauri-apps/cli to v2.0.3 (#1925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 11:14:14 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
854754e10b chore(deps): update dependency typescript-eslint to v8.10.0 (#1949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 11:13:06 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1c2f137a8a chore(deps): lock file maintenance (#1929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 11:12:38 +08:00
8c67d44aef refactor(store)!: more reworks (#1860)
* refactor(store): more reworks

* Enable auto save by default

* Store to resource table by default

* Remove share store

* Clean up

* Add close store

* Add store function

* Add lazy store

* Add init to lazy store

* refresh cache in example

* Add get-or-create-store

* Revert "Add get-or-create-store"

This reverts commit 7ffd769240.

* try get first

* Docs

* Use absolute path for store

* more docs

* Allow js to use pre-stored (de)serialize functions

* Fix js get and close store

* Show case how to use pretty json

* Update readme

* Use store instead of `store_builder` in example

* Build

* Fix example

* More docs for StoreBuilder::build

* Add default (de)serialize fn

* Use pretty json by default

* Use `undefined` for empty value in get

* Change files

* Differentiate json null from no value for events

* Add create or existing

* Build

* Rename inner store's inset method to set

* Update readme

* Apply suggestions from code review

* Use close instead

* Update breaking changes

* Return result in resolve_store_path

* Change to close_resource and take &self

* Clean up

* Apply suggestions from code review

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

* Remove unused pub(crate)

* Update change file

* Expose resolve_store_path

* Remove with_store

* Remove StoreInner from pub and expose is_empty

* Fix wrong jsdoc param

* Update readme

* rename createOrExistingStore to createOrLoad

* make api consistent with the JS implementation, add examples

* fmt

* reintroduce "get existing store" behavior for create_or_load

* rename createOrLoad to newOrExisting

* keep store lock throughout whole new_or_existing_inner

* Remove load

* Missed if load

* Don't make StoreState public

* Remove R: Runtime from Builder

* rename newOrExisting to load, load to reload

* update docs

* rename missing reload fn

* rename builder fn to build()

* fix default permission

* Fix description and create_new logic

* Clippy

* Update docs

* Update docs

* remove create_store command

* remove close_store command since we extend from Resource

* Revert "remove close_store command since we extend from Resource"

This reverts commit 4a29fc8990.

* Reapply "remove close_store command since we extend from Resource"

This reverts commit 70a1830e7d.

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-17 19:14:41 +08:00
Niko KorvenlaitaandGitHub cfd48b3b2e feat: allow http calls without origin header (#1941) 2024-10-16 15:56:36 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
558e14bb4c chore(deps): update dependency typescript-eslint to v8.9.0 (#1937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 09:52:18 +08:00
aef5dd6157 fix(sql): don't panic on missing migration when preload is enabled (#1932)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-10-14 20:32:49 +02:00
Fabian-LarsandGitHub 74ee7edc43 ci: Run workflows on ubuntu 22.04 (#1936) 2024-10-14 18:40:56 +02:00
Fabian-LarsandGitHub 7e1c17a635 ci(renovate): Remove tauri pre-release workaround 2024-10-09 14:44:38 +02:00
Lucas Fernandes NogueiraandGitHub 3c1f3874f4 fix(positioner): handleIconState missing permission and wrong impl (#1911) 2024-10-09 09:37:16 -03:00
Amr BashirandGitHub 51ddf6a715 fix(shell): use async command for open JS API (#1881)
closes tauri-apps/tauri#11212
2024-10-09 08:47:25 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
62082b7086 chore(deps): lock file maintenance (#1895)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 08:46:38 -03:00
aee14ed426 fix(dialog): Fix the issue of Android saving files with a .txt extension (#1892)
* fix: Fix the issue of Android saving files with a .txt extension

* fix(dialog): pull intent type from extensions filters

* fix covector

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-09 08:45:05 -03:00
9b2840db94 fix(http): retain headers order (#1884)
* fix(http): retain headers order

closes #1882

* simplify if

* actually set headers

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-09 08:07:46 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
60064fce52 chore(deps): update dependency typescript to v5.6.3 (#1905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 09:28:06 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0058583583 fix(deps): update tauri monorepo to v2.0.2 (#1874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-08 15:29:28 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fb676626f1 chore(deps): update dependency typescript-eslint to v8.8.1 (#1899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-08 10:01:07 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f445c704a1 chore(deps): update eslint monorepo to v9.12.0 (#1887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 07:29:30 +08:00
fd785ab5de publish new versions (#1878)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-03 10:58:13 -03:00
Lucas Fernandes NogueiraandGitHub a1a82208ed chore: change MSRV to 1.77.2 to support Windows 7 (#1873)
* chore: change MSRV to 1.77.2 to support Windows 7

* fmt
2024-10-03 10:31:13 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
dc49de5341 chore(deps): update dependency typescript-eslint to v8.8.0 (#1854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-03 20:52:00 +08:00
TillmannandGitHub 4c2454d410 sync readme with metadata (#1872) 2024-10-03 07:23:40 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fe6dd0ff9e fix(deps): update dependency @tauri-apps/api to v2.0.1 (#1862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-03 10:54:25 +08:00
HoruandGitHub ab8d089b2b chore(barcode-scanner): fix banner link in readme (#1870)
* chore: fix banner link in readme

* chore: raw
2024-10-03 05:04:38 +03:00
ee02ea7746 publish new versions (#1869)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-02 16:40:18 -03:00
Lucas Fernandes NogueiraandGitHub 9501cfa5f5 fix(updater): validate endpoint scheme before printing warning (#1868)
regression from #1814
2024-10-02 16:28:16 -03:00
Lucas Fernandes NogueiraandGitHub e8069af804 feat: update to tauri v2 stable, promote all packages to 2.0.0 (#1863)
* update to tauri v2

* covector setup

* update locks

* bump packages to v2 through covector, remove rc references

* msrv 1.78

* downgrade 1.79 msrv dep

* test clipboard

* fmt

* bitstream-io 2.3.0

* Revert "test clipboard"

This reverts commit c3e19dbe59.
2024-10-02 12:08:37 -03:00
pajladaandGitHub 0975a687a0 fix: make package.json licenses SPDX compliant (#1861)
* fix: make plugin template package.json license SPDX compliant

* fix: make plugin package.json license SPDX compliant

* fix: make root package.json license SPDX compliant
2024-10-02 08:29:34 -03:00
Amr BashirandGitHub 654a7299c3 fix(positioner): pass correct values through IPC (#1858)
* fix(positioner): pass correct values through IPC

followup to https://github.com/tauri-apps/plugins-workspace/pull/1822

* build api & remove packageManager field
2024-10-02 08:28:28 -03:00
Lucas Fernandes NogueiraandGitHub 58eab11faf chore: document supported platforms on README, clarify unsupported APIs (#1857)
closes #1795
2024-10-02 08:27:27 -03:00
fb62d03f73 publish new versions (#1807)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-02 07:02:42 -03:00
TonyandGitHub 7e5e34420b Cancel auto save on save (#1859) 2024-10-01 23:13:20 -03:00
f12d35609a feat(store)!: fully rework and add auto save (#1550)
* Add auto save to store plugin

* Put jsdoc at constructor instead of class level

* Clippy

* Use enum instead of bool

* Some(AutoSaveMessage::Cancel) | None

* from_millis

* u64

* Add change file

* Rename to emit_on_change

* should use Duration in `with_store`

* Add breaking change notice to change file

* Emit change event for inserts by reset

* Update readme example

* Update example

* Remove extra line

* Make description clear it only works with managed

* Fix links in docstring

* Fix doc string closing

* get_mut

* Proof of concept

* fmt

* Load store on create

* cargo fmt

* Fix merge conflits

* Format

* small cleanup

* update docs, use `impl Into<JsonValue>`

* fix doctests, further simplification of api

* add store options

---------

Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-01 15:10:40 -03:00
44273b9889 fix(shell): fix schema requiring sidecar property even though it is optional (#1839)
* fix(shell): fix schema requiring `sidecar` property even though it is optional

* fix clippy

* make `cmd` and `sidecar` exclusive

* make args optional

* cleanup

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-01 10:16:14 -03:00
2f7e32b5e0 [positioner] handleIconState in JS (#1822)
* [positioner] handleIconState in JS

* update readme

* fix change file version

* fixes

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-01 10:15:22 -03:00
Fabian-LarsandGitHub 30bcf5dcc2 refactor(sql): Allow multiple drivers at the same time (#1838)
* refactor(sql): Allow multiple drivers at the same time

* fmt

* remove default feature comment [skip ci]

* what was that doing there [skip ci]

* disable public methods for now
2024-10-01 09:47:08 -03:00
Amr BashirandGitHub 68579934c9 fix(cli): expose hidden structs (#1856)
closes  #1843
2024-10-01 09:35:13 -03:00
TonyandGitHub 04459afbb6 refactor(dialog)!: use enum instead of label for buttons (#1842)
* refactor(dialog)!: use enum instead of label

* Add change file

* Fix doc comment typo

* Move ok and cancel to lib.rs
2024-10-01 09:34:20 -03:00
TillmannandGitHub 3b2bd3065d fix sql heading 2024-09-30 14:11:44 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f930505de4 chore(deps): lock file maintenance (#1852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 10:19:10 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
34319bd977 chore(deps): update unocss monorepo to ^0.63.0 (#1848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 16:18:56 +08:00
TonyandGitHub 34737186fe chore: re-generate reference.md (#1847) 2024-09-28 20:50:57 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4bd1f15bb9 fix(deps): update tauri monorepo (#1846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 14:44:24 +08:00
aabc4d3a24 Add Metadata for Plugin Compatibility (#1836)
Co-authored-by: Tillmann <112912081+tillmann-crabnebula@users.noreply.github.com>
Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2024-09-26 14:21:25 +02:00
Fabian-LarsandGitHub fc9b189e83 fix(fs): ignore OS specific paths in scope deserialization (#1837) 2024-09-26 02:43:33 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>FabianLars
b7ff3a6bdb fix(deps): update rust crate windows-registry to 0.3 (v2) (#1841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-09-25 15:44:41 +02:00
Amr BashirandGitHub 04a0aea0ab feat(updater)!: add option to use insecure transport protocol (#1814) 2024-09-24 18:38:53 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e564e2aa91 chore(deps): update dependency typescript-eslint to v8.7.0 (#1832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 23:25:24 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
118f6b4334 chore(deps): update dependency @rollup/plugin-node-resolve to v15.3.0 (#1831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 23:11:01 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fd0a52aa86 chore(deps): update eslint monorepo to v9.11.1 (#1829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 22:49:03 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>fabianlars
52e3bdab26 fix(deps): update dependency @zerodevx/svelte-json-view to v1.0.11 (v2) (#1830)
* fix(deps): update dependency @zerodevx/svelte-json-view to v1.0.11

* audit fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: fabianlars <fabianlars@fabianlars.de>
2024-09-23 22:45:24 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
dd09e3c3f4 chore(deps): update dependency @rollup/plugin-node-resolve to v15.2.4 (#1824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 16:13:16 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2797954799 chore(deps): update dependency rollup to v4.22.4 (#1818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 16:08:15 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
025210be28 chore(deps): update eslint monorepo to v9.11.0 (#1820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 16:07:35 +08:00
Amr BashirandGitHub 221f50f53b fix(updater): encode version when making requests (#1816)
* fix(updater): encode version when making requests

ref: https://github.com/tauri-apps/tauri/issues/10908

* Update .changes/updater-endpoint-version-encoded.md

* only skip `+`

* fmt

* use normal const
2024-09-20 07:57:40 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Tony
6bf1bd8d44 fix(deps): update rust crate rfd to 0.15 (v2) (#1805)
* fix(deps): update rust crate rfd to 0.15

* Fix compilation

* Add change file

* Remove platform specific note

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2024-09-19 20:04:02 +08:00
TonyandGitHub 41fe9053a0 fix(deep-link): is_registered check on windows 2024-09-19 19:58:13 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
27bb5d9a27 chore(deps): update dependency rollup to v4.22.0 (v2) (#1810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 12:40:55 +02:00
3168e17603 Added quotes for cmd (#1806)
* Added quotes for cmd

* Add change file

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2024-09-19 09:59:54 +08:00
Jaken HermanandGitHub dd514e7a88 Docs: contaiend -> contained typos (#1802) 2024-09-17 19:31:55 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6e142b4230 fix(deps): update tauri monorepo (v2) (#1801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 17:24:18 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fd1c7c8dbb fix(deps): update dependency @tauri-apps/plugin-geolocation to v2.0.0-rc.2 (v2) (#1799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 11:09:53 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
59c63f31cc chore(deps): update dependency typescript-eslint to v8.6.0 (v2) (#1798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 21:39:26 +02:00
github-actions[bot]andGitHub 3cbb55aa7b publish new versions (#1796) 2024-09-16 16:29:07 -03:00
Lucas Fernandes NogueiraandGitHub 60765694f5 refactor(geolocation): simplify API, defer permission checks (#1773) 2024-09-16 17:01:13 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>FabianLars
fd75401aee fix(deps): update rust crate image to 0.25 (v2) (#1418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-09-16 13:20:08 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ca34972266 fix(deps): update rust crate tokio-tungstenite to 0.24 (v2) (#1781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 13:13:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
179184326b chore(deps): update tauri monorepo (v2) (#1789)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 12:08:42 +02:00
d8efd3cd20 Publish New Versions (v2) (#1794)
Co-authored-by: amrbashir <amrbashir@users.noreply.github.com>
2024-09-16 07:00:22 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5d39ddcf22 chore(deps): lock file maintenance (#1791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 10:21:19 +08:00
TonyandGitHub 2050a3bea2 fix(upload): change tokio version to 1 instead of * (#1793) 2024-09-16 05:20:52 +03:00
TonyandGitHub c078f57a09 Revert "Publish New Versions (v2)" (#1792)
This reverts commit dc5721ac13.
2024-09-16 05:20:21 +03:00
dc5721ac13 Publish New Versions (v2) (#1788)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-15 18:37:58 -03:00
1d9741b52b [upload - http-extra] fix: download content to file when unsuccessful response (and test) #1750 (#1783)
* fix and test

* Update Cargo.toml

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

* Update Cargo.toml

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

* add .change log

* clippy fixes

* print test error

* fix tests

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-09-15 18:37:02 -03:00
TonyandGitHub 7a37355e17 fix(window-state): deadlock when trying to restore window states on initial load (#1787)
* Fix deadlock when trying to restore window the size on initial load

* Typo
2024-09-15 18:01:27 -03:00
5cbd593e76 publish new versions (#1772)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-15 11:55:38 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f7600b5fff chore(deps): update dependency @tauri-apps/cli to v2.0.0-rc.14 (#1786)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 11:37:09 -03:00
Lucas Fernandes NogueiraandGitHub fb85e5dd76 chore(deps): update tauri to 2.0.0-rc.12 (#1785) 2024-09-15 11:36:23 -03:00
Lucas Fernandes NogueiraandGitHub 6f3f66794a feat(deep-link): add on_open_url Rust API (#1780) 2024-09-14 21:35:31 -03:00
FabianLars 79d6e19c4b chore: Add changefile for #1777 2024-09-14 18:34:45 +02:00
aebd4f6185 fix(barcode-scanner): Fix mixed up imports (internal) (#1777)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-14 18:20:21 +02:00
Lucas Fernandes NogueiraandGitHub 341a5320c3 fix(clipboard): Android warnings and build on SDK under 28 (#1771) 2024-09-13 12:03:10 -03:00
Lucas Fernandes NogueiraandGitHub cc03ccf5e0 fix(fs): app scopes not properly enabling paths (#1774) 2024-09-13 09:57:46 -03:00
Lucas Nogueira 009299ebec chore(prettier): ignore mobile build artifacts 2024-09-13 09:10:01 -03:00
TonyandGitHub 204e5aacad fix(window-state)!: saving minimized state (#1743)
* Fix saving minimized state again

* Add change file

* Fix saving minimized size

* Add change file

* Fix missing .md

* Remove window-shadows
2024-09-13 06:29:38 +03:00
8a45c35160 publish new versions (#1764)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-12 15:49:29 -03:00
Lucas Nogueira ebf821afd1 chore(examples): update AndroidManifest.xml 2024-09-12 15:32:27 -03:00
Lucas Fernandes NogueiraandGitHub 984110a978 fix(deep-link): emit new-url event on app load (#1770) 2024-09-12 11:20:16 -03:00
Lucas Fernandes NogueiraandGitHub 2b898f0786 fix(dialog): update asset protocol scope on directory open, closes #1553 (#1769) 2024-09-12 11:10:16 -03:00
b2269333e3 chore(single-instance): put deep link integration behined a feature (#1766)
* Make deep link optional for single instance

* Add change file

* Add deep-link feature to example

* Update plugins/deep-link/README.md

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

* format

* [skip ci] update readme

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-12 18:20:15 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
41afcae399 chore(deps): update dependency rollup to v4.21.3 (v2) (#1767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 12:01:38 +02:00
9291e4d2ca fix(fs): support any UTF-8 path in writeFile (#1640)
* In the `writeFile` function, when `options.baseDir` is not set, convert `path` to URL to avoid errors caused by Chinese characters.

* fmt

* use TextEncoder

* use percent encoding

* add change file

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-09-11 12:02:24 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3715f3c9a6 chore(deps): update tauri monorepo (#1760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 09:12:13 +08:00
github-actions[bot]andGitHub 253ae66210 publish new versions (#1761) 2024-09-10 16:14:05 -03:00
Lucas Nogueira 949e2d6c45 chore: update docs 2024-09-10 16:02:38 -03:00
Lucas Fernandes NogueiraandGitHub 64a6240f79 feat(deep-link): implement getCurrent on Windows/Linux (#1759)
* feat(deep-link): implement getCurrent on Windows/Linux

checks std::env::args() on initialization, also includes integration with the single-instance plugin

* fmt

* update docs, fix event

* add register_all function

* expose api

* be nicer on docs, clippy
2024-09-10 16:00:42 -03:00
77680f6ed8 publish new versions (#1740)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-10 13:06:48 -03:00
Lucas Fernandes NogueiraandGitHub 8c3a6a253d feat(barcode-scanner): validate missing Info.plist configuration (#1758) 2024-09-10 12:24:03 -03:00
Lucas Nogueira 57fd28126c chore(examples): add NFCReaderUsageDescription Info.plist, entitlement 2024-09-10 08:45:43 -03:00
Lucas Fernandes NogueiraandGitHub a34fade500 chore(ios): consolidate optional argument standard (#1738)
* chore(ios): consolidate optional argument standard

mark all optional iOS arguments as `var <name>: Type?`, following the pattern described in the documentation: https://v2.tauri.app/develop/plugins/develop-mobile/#ios

* chore: add missing Info.plist to example
2024-09-10 08:31:39 -03:00
713c54ef83 chore(barcode): remove unused Android dependencies (#1749)
* chore(barcode): remove unused Android dependencies

Plugin barcode-scanner has two unused Android dependencies:
- com.google.zxing:core
- com.journeyapps:zxing-android-embedded

However, these dependency's AndroidManifest.xml were merged, and contained
required parameters (to get camera's permissions).

See the merged manifests:
- https://github.com/zxing/zxing/blob/zxing-3.3.0/android/AndroidManifest.xml
- https://github.com/journeyapps/zxing-android-embedded/blob/v4.3.0/zxing-android-embedded/AndroidManifest.xml

This commit removes the unused dependencies (and unused Java imports)
and updates the Android manifest.

* chore: remove comments

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-10 08:01:29 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a9b2a9af84 chore(deps): update dependency typescript to v5.6.2 (v2) (#1754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 21:28:08 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c23b3d4bc8 chore(deps): update dependency typescript-eslint to v8.5.0 (v2) (#1755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 21:24:20 +02:00
0dd97d9115 feat(sql): added uuid type in postgres decoder (#1375)
Co-authored-by: Kauan Curbani <kauan.curbani@segalas.local>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-09 17:40:45 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3912800db3 chore(deps): lock file maintenance (#1753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 13:35:43 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c23d7c51f6 chore(deps): lock file maintenance (#1751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 11:22:59 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5906cf4335 chore(deps): update eslint monorepo to v9.10.0 (v2) (#1744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-08 18:12:08 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d4a54157f0 chore(deps): update tauri monorepo (#1739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 09:19:57 +08:00
Lucas Fernandes NogueiraandGitHub 3d301c654e fix(notification): body should be optional on iOS (#1737) 2024-09-05 17:46:04 -03:00
12e80ffe00 Publish New Versions (v2) (#1736)
Co-authored-by: amrbashir <amrbashir@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-05 13:26:57 +02:00
Amr BashirandGitHub a2fe55512f refactor: add methods and implement traits for FilePath and SafeFilePath (#1727)
* refactor: add methods and implement traits for `FilePath` and `SafeFilePath`

closes #1726

* clippy

* path -> as_path

* fix prettierignore

* Discard changes to Cargo.lock

* Discard changes to Cargo.toml

* update tauri deps
2024-09-05 14:12:40 +03:00
Fabian-LarsandGitHub d00519e3e3 chore: Add missing changefile for updater rust changes (#1735) 2024-09-05 13:10:04 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6995127778 chore(deps): update tauri monorepo (#1734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 11:16:52 +08:00
c565a08d09 publish new versions (#1711)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-04 17:30:08 -03:00
cf4d7d4e6c chore: adjust prettier config, .gitignore and use taplo to format toml files (#1728)
* chore: adjust prettier config, .gitignore and use taplo to format toml files

This brings the plugins-workspace repository to the same code style of the main tauri repo

* format toml

* ignore examples gen dir

* add .vscode/extensions.json

* remove packageManager field

* fmt

* fix audit

* taplo ignore permissions autogenerated files

* remove create dummy dist

* fix prettier workflow

* install fmt in prettier workflow

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-04 08:54:23 -03:00
Lucas Fernandes NogueiraandGitHub 72c2ce82c1 chore(deep-link): fix example, update documentation (#1725)
* chore(deep-link): fix example, update documentation

* update lock file

* fix lint, add header

* fmt
2024-09-04 08:37:34 -03:00
Lucas Fernandes NogueiraandGitHub 4654591d82 fix(deep-link): allow empty config values (#1732) 2024-09-04 08:18:42 -03:00
Lucas Fernandes NogueiraandGitHub feb1e93fcb feat(dialog): implement save API on iOS (#1707) 2024-09-02 21:13:43 -03:00
Fabian-LarsandGitHub ff134a8ca4 Remove authenticator plugin (#1723) 2024-09-03 02:41:19 +03:00
Amr BashirandGitHub f8255e1db5 feat(updater): allow passing headers & timeout in Update.download* methods (#1661)
closes #1634
2024-09-03 01:02:16 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b9bcb2b6af chore(deps): update dependency typescript-eslint to v8.4.0 (v2) (#1721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 21:23:41 +02:00
Lucas Fernandes NogueiraandGitHub 51819c601f fix(fs): writeFile command implementation on Android (#1708) 2024-09-02 13:13:53 -03:00
TonyandGitHub f7280c8830 fix(fs): can't use Windows path (#1710)
* Fix fs can't use Windows path

* Add change file

* Implement `Deserialize` instead

* Rename FilePath's visitor to FilePathVisitor

* Add todo and test

* Clippy

* Unused variable
2024-09-02 18:24:37 +03:00
Lucas Fernandes NogueiraandGitHub 0cb99bdaf1 fix(dialog): iOS file picker default to file selection instead of photo (#1706) 2024-09-02 17:43:13 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>FabianLars
de04935b2f chore(deps): update rust crate urlpattern to 0.3 (v2) (#1607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-09-02 15:37:44 +02:00
Carlos ValdezandGitHub b4c95b25df chore(dialog): fix misspell "ths" to "the" (#1719) 2024-09-02 14:05:11 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
de452d4373 chore(deps): update rust crate infer to 0.16 (v2) (#1419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 12:48:48 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e271382982 chore(deps): update dependency tslib to v2.7.0 (#1715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 12:24:53 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3a350add23 chore(deps): update eslint monorepo to v9.9.1 (#1685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:32:56 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3518a23fa0 chore(deps): update dependency rollup to v4.21.2 (#1712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:27:59 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c6a1b86404 chore(deps): update dependency @zerodevx/svelte-json-view to v1.0.10 (#1713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:26:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
091a78f1d2 chore(deps): update dependency typescript-eslint to v8.3.0 (#1678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:23:00 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
16f68c2397 chore(deps): update rust crate gethostname to 0.5 (#1522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:21:19 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
16d87bf236 chore(deps): update dependency @tauri-apps/cli to v2.0.0-rc.10 (#1677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:10:00 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e502a706d1 fix(deps): update rust crate cocoa to 0.26 (#1650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 10:05:40 +02:00
TonyandGitHub 17e8014b69 fix(window-state): saving a minimized window's state changes its position to -32000 (#1702)
* Don't store position on minimized

* Add change file

* ?
2024-09-02 15:58:25 +08:00
de732d0ab0 publish new versions (#1683)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-29 15:47:05 -03:00
Lucas Fernandes NogueiraandGitHub e2e97db519 feat: use PermissionState type from tauri, closes #979 (#1701) 2024-08-29 15:40:38 -03:00
Lucas Fernandes NogueiraandGitHub 9ea9e05944 chore(deps): update to tauri rc.7 (#1699)
* chore(deps): update to tauri rc.7

* update api [skip ci]

* downgrade sqlx [skip ci]
2024-08-28 19:21:37 -03:00
Lucas Fernandes NogueiraandGitHub d0482502e9 chore(api): tauri can serialize array buffers from rc.7 (#1694)
* chore(api): tauri can serialize array buffers from rc.7

* fmt

* fix audit

* update lockfile
2024-08-28 17:58:56 -03:00
Lucas Fernandes NogueiraandGitHub 0c040bcc9a fix(store): remove Android and iOS plugins, closes #1256 (#1695)
The Android and iOS support introduced on #1011 is not really supported - the Tauri path API correctly resolves the cache directory on mobile, and we can access those directly using Rust code.

This is a breaking change because we no longer uses the same directory to store the files - app_cache_dir returns a different location
2024-08-27 14:18:02 -03:00
Lucas Fernandes NogueiraandGitHub 0d5e7e2892 feat(fs): scope-*-recursive permission allows read dir, closes #1307 (#1696)
We could instead document that you should also enable `scope-*-index`, it is more a matter of semantics.
2024-08-27 14:17:30 -03:00
Greg KnappandGitHub 01c913e83e Update import package name to V2 (#1693) 2024-08-27 18:34:23 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
532622d8b2 fix(deps): update rust crate sqlx to v0.8.1 [security] (#1686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 18:28:01 +08:00
448846b834 feat(fs): resolve content URIs on Android (#1658)
* Implemented writeTextFile on Android.

* Added license headers.

* fix fmt checks.

* implement more file APIs

* change file

* cleanup

* refactor dialog plugin to leverage new FS APIs

* implement metadata functions

* fix build

* expose FS rust API

* resolve resources on android

* update pnpm

* update docs

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-23 13:35:53 -03:00
Amr BashirandGitHub 3c52f30ea4 chore(deps): update windows-sys crate to 0.59 and global-hotkey to 0.6 (#1665)
* chore(deps): update windows-sys crate to `0.59`

* update global-hotkey as well

* change files
2024-08-21 17:04:03 +03:00
Amr BashirandGitHub f690777a91 refacator(dialog): mark FileResponse as #[non_exhaustive] (#1660)
* recator(dialog): mark `FileResponse` as `#[non_exhaustive]`

closes #1623

* change file
2024-08-21 16:14:58 +03:00
f946a7cf1f publish new versions (#1680)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-19 21:36:15 -03:00
Lucas Fernandes NogueiraandGitHub b914775898 fix: explicitly set a minimum macOS version for older Swift versions (#1679)
ref https://github.com/tauri-apps/tauri/pull/10687
2024-08-19 16:29:22 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
66b9eaa0e5 fix(deps): update rust crate win7-notifications to 0.4.5 (#1676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 14:41:50 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e2fa6d3a1b chore(deps): lock file maintenance (#1675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 14:33:05 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6c823ae31a chore(deps): update dependency @tauri-apps/cli to v2.0.0-rc.4 (#1670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 11:01:50 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f4c9e13250 chore(deps): update dependency rollup to v4.21.0 (#1672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 10:59:10 +02:00
github-actions[bot]andGitHub 121f68b449 publish new versions (#1616) 2024-08-17 07:55:31 -03:00
Lucas Nogueira ec067a5997 chore: trigger CI 2024-08-17 07:50:48 -03:00
Lucas Fernandes NogueiraandGitHub 5d170a5444 chore(deps): tauri 2.0.0-rc.3 (#1671)
* chore(deps): tauri 2.0.0-rc.3

* fix builds

* fix deep link [skip ci]
2024-08-17 07:40:57 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4dd7f5ddd8 chore(deps): update rust crate specta to v2.0.0-rc.20 (v2) (#1617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-16 14:34:59 -03:00
Fabian-LarsandGitHub 998f86371c chore(deps): Update iota-crypto (removing patch) (#1664) 2024-08-15 15:14:45 +03:00
84f8bd5e1e fix(http): properly invoke abort (#1662)
Co-authored-by: amrbashir <github@amrbashir.me>
2024-08-14 19:18:32 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
af943db6f8 chore(deps): update dependency typescript-eslint to v8.1.0 (#1655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-14 12:51:59 +02:00
bc7eecf420 feat(dialog): Implemented android save dialog. (#1657)
* Implemented android save dialog.

* small cleanup

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-13 08:41:30 -03:00
5081f30daf fix(shell): fix inlined docs for scope (#1656)
* fix(shell): fix inlined docs for scope

* Update plugins/shell/guest-js/index.ts

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-13 07:55:55 -03:00
Lucas Fernandes NogueiraandGitHub 584eb61f16 fix: docs.rs (#1654)
* fix: docs.rs

* fix updater docs

* update build script
2024-08-12 15:53:27 -03:00
Lucas Nogueira 7b053ba6f6 fix(log): update log directory in documentation ref #1637 2024-08-12 15:05:12 -03:00
7701392500 fix(updater): linux not retaining AppImage permissions, enhance tests (#1636)
* fix(updater): linux not retaining AppImage permissions, enhance tests

- adds a test for migration from v1 to v2
- extends the existing integration test to actually verify if the app was updated

* remove test framework

* fix macos test

* fix windows

* wait on windows

* fix wix

* typo

* fmt

* install webkit2gtk-4.0 on ci

* fix npm command on windows

* fix test on windows

* ubuntu-22.04

---------

Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2024-08-12 14:59:53 -03:00
MiniontobyandGitHub e4e19e001b [log] Fix typo in docs of lib.rs (#1637)
* [log] Fix typo in docs of lib.rs

* [lib] Fix typo in docs of lib.rs
2024-08-12 14:59:16 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
78061c3455 chore(deps): update unocss monorepo to ^0.62.0 (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 12:35:29 +02:00
AHQandGitHub 6b079cfdd1 refactor(android): Remove targetSdk = 34 from every gradle build files (#1649)
* remove targetSdk

* changelog

* fix md file

* Add the -js ones as well

* remove -js ones
2024-08-12 07:11:04 -03:00
5f68990297 chore(fs): update API documentation (#1645)
* chore(fs): update API documentation

* fmt

---------

Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2024-08-12 00:54:29 -03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
94678051df chore(deps): lock file maintenance (#1651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 11:15:53 +08:00
mikoto2000andGitHub 59644c5d22 docs: add Contributing Guide link in root README. (#1647) 2024-08-10 19:55:10 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
edde2dedf1 chore(deps): update eslint monorepo to v9.9.0 (#1643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-10 10:03:17 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
05aaad3aec chore(deps): update tauri monorepo (#1639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 15:35:55 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
279698700a chore(deps): update tauri monorepo (#1633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-08 09:21:25 +08:00
Fabian-LarsandGitHub 2c00c0292c fix: use _ as word boundary in IIFE var names (#1630)
* fix: use `_` as word boundary in IIFE var names

* Revert "fix: use `_` as word boundary in IIFE var names"

This reverts commit 396ed3fa56.

* Reapply "fix: use `_` as word boundary in IIFE var names"

This reverts commit f31de7dab3.
2024-08-07 14:14:17 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
901dd560be chore(deps): update dependency typescript-eslint to v8.0.1 (#1629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 09:50:02 +02:00
Fabian-LarsandGitHub b867127329 chore: Remove geolocation and haptics from list of mirrors 2024-08-05 10:25:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
132c58f80d chore(deps): lock file maintenance (#1628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 09:30:30 +02:00
TonyandGitHub f8925b9687 Run prettier (#1627) 2024-08-04 12:24:25 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1e60a9888d chore(deps): update dependency @tauri-apps/cli to v2.0.0-rc.1 (#1618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-04 17:08:29 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
788989aa60 chore(deps): update dependency rollup to v4.20.0 (#1621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 13:08:37 +02:00
Lucas Nogueira 096b152731 chore: add contributors 2024-08-03 00:32:14 -03:00
Lucas Nogueira ad03b8e035 fix(geolocation): plugin does not have a execute command 2024-08-02 21:01:41 -03:00
Lucas Nogueira d13e6bcb78 chore: update API example 2024-08-02 13:24:15 -03:00
amrbashir 5092683f97 feat(shell): add show_item_in_dir api 2024-02-28 03:25:18 +02:00
705 changed files with 19886 additions and 29165 deletions
+1 -1
View File
@@ -7,5 +7,5 @@ ignore = [
# wry needs kuchiki on Android # wry needs kuchiki on Android
"RUSTSEC-2023-0019", "RUSTSEC-2023-0019",
# atty is only used when the `colored` feature is enabled on tauri-plugin-log # atty is only used when the `colored` feature is enabled on tauri-plugin-log
"RUSTSEC-2021-0145" "RUSTSEC-2021-0145",
] ]
+7 -10
View File
@@ -68,7 +68,10 @@
"os", "os",
"process", "process",
"shell", "shell",
"updater" "store",
"updater",
"geolocation",
"haptics"
] ]
}, },
"api-example-js": { "api-example-js": {
@@ -90,6 +93,7 @@
"os-js", "os-js",
"process-js", "process-js",
"shell-js", "shell-js",
"store-js",
"updater-js" "updater-js"
], ],
"postversion": "pnpm install --no-frozen-lockfile" "postversion": "pnpm install --no-frozen-lockfile"
@@ -101,14 +105,6 @@
"dependencies": ["deep-link-js"], "dependencies": ["deep-link-js"],
"postversion": "pnpm install --no-frozen-lockfile" "postversion": "pnpm install --no-frozen-lockfile"
}, },
"authenticator": {
"path": "./plugins/authenticator",
"manager": "rust"
},
"authenticator-js": {
"path": "./plugins/authenticator",
"manager": "javascript"
},
"autostart": { "autostart": {
"path": "./plugins/autostart", "path": "./plugins/autostart",
"manager": "rust" "manager": "rust"
@@ -274,7 +270,8 @@
}, },
"single-instance": { "single-instance": {
"path": "./plugins/single-instance", "path": "./plugins/single-instance",
"manager": "rust" "manager": "rust",
"dependencies": ["deep-link"]
}, },
"sql": { "sql": {
"path": "./plugins/sql", "path": "./plugins/sql",
+5
View File
@@ -0,0 +1,5 @@
---
sql: patch
---
Replace `Mutex` with `RwLock` to enable concurrent SQL execution.
+5
View File
@@ -0,0 +1,5 @@
---
"fs-js": "patch"
---
Fix `writeTextFile` converting UTF-8 characters (for example `äöü`) in the given path into replacement character (``)
-6
View File
@@ -1,6 +0,0 @@
---
"geolocation": major
"geolocation-js": major
---
Initial release.
-6
View File
@@ -1,6 +0,0 @@
---
"haptics": major
"haptics-js": major
---
Initial release.
-10
View File
@@ -1,10 +0,0 @@
{
"tag": "rc",
"changes": [
".changes/geolocation-release.md",
".changes/haptics-release.md",
".changes/rc.md",
".changes/shell-open-regex-match-string.md",
".changes/shell-regex-match-string.md"
]
}
-61
View File
@@ -1,61 +0,0 @@
---
"authenticator": patch
"autostart": patch
"barcode-scanner": patch
"biometric": patch
"cli": patch
"clipboard-manager": patch
"deep-link": patch
"dialog": patch
"fs": patch
"global-shortcut": patch
"http": patch
"localhost": patch
"log-plugin": patch
"nfc": patch
"notification": patch
"os": patch
"persisted-scope": patch
"positioner": patch
"process": patch
"shell": patch
"single-instance": patch
"sql": patch
"store": patch
"stronghold": patch
"updater": patch
"upload": patch
"websocket": patch
"window-state": patch
"authenticator-js": patch
"autostart-js": patch
"barcode-scanner-js": patch
"biometric-js": patch
"cli-js": patch
"clipboard-manager-js": patch
"deep-link-js": patch
"dialog-js": patch
"fs-js": patch
"global-shortcut-js": patch
"http-js": patch
"log-js": patch
"nfc-js": patch
"notification-js": patch
"os-js": patch
"positioner-js": patch
"process-js": patch
"shell-js": patch
"sql-js": patch
"store-js": patch
"stronghold-js": patch
"updater-js": patch
"upload-js": patch
"websocket-js": patch
"window-state-js": patch
"haptics": patch
"haptics-js": patch
"geolocation": patch
"geolocation-js": patch
---
Update to tauri RC.
+1 -1
View File
@@ -11,7 +11,7 @@ Use the following format:
```md ```md
--- ---
"package-a": patch "package-a": patch
"package-b": minor "package-b": minor:feat
--- ---
Change summary goes here Change summary goes here
@@ -1,5 +0,0 @@
---
"shell": patch
---
Change the `open` scope validator regex to match on the entire string.
-6
View File
@@ -1,6 +0,0 @@
---
"shell": patch
---
Change the `execute` scope argument validator regex to match on the entire string by default.
If this behavior is not desired check the `raw` boolean configuration option that is available along the `validator` string.
+8 -8
View File
@@ -7,23 +7,23 @@ name: Audit JavaScript
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * *" - cron: '0 0 * * *'
push: push:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-javascript.yml" - '.github/workflows/audit-javascript.yml'
- "**/pnpm-lock.yaml" - '**/pnpm-lock.yaml'
- "**/package.json" - '**/package.json'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-javascript.yml" - '.github/workflows/audit-javascript.yml'
- "**/pnpm-lock.yaml" - '**/pnpm-lock.yaml'
- "**/package.json" - '**/package.json'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -43,7 +43,7 @@ jobs:
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
version: 9.x.x version: 9.x.x
+7 -7
View File
@@ -7,23 +7,23 @@ name: Audit Rust
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * *" - cron: '0 0 * * *'
push: push:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-rust.yml" - '.github/workflows/audit-rust.yml'
- "**/Cargo.lock" - '**/Cargo.lock'
- "**/Cargo.toml" - '**/Cargo.toml'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-rust.yml" - '.github/workflows/audit-rust.yml'
- "**/Cargo.lock" - '**/Cargo.lock'
- "**/Cargo.toml" - '**/Cargo.toml'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
+3 -7
View File
@@ -7,8 +7,8 @@ name: check generated files
on: on:
pull_request: pull_request:
paths: paths:
- ".github/workflows/check-generated-files.yml" - '.github/workflows/check-generated-files.yml'
- "**/guest-js/**" - '**/guest-js/**'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -25,10 +25,6 @@ jobs:
id: filter id: filter
with: with:
filters: | filters: |
authenticator:
- .github/workflows/check-generated-files.yml
- plugins/authenticator/guest-js/**
- plugins/authenticator/src/api-iife.js
autostart: autostart:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- plugins/autostart/guest-js/** - plugins/autostart/guest-js/**
@@ -140,7 +136,7 @@ jobs:
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
version: 9.x.x version: 9.x.x
@@ -27,4 +27,4 @@ jobs:
uses: jbolda/covector/packages/action@covector-v0 uses: jbolda/covector/packages/action@covector-v0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
command: "status" command: 'status'
+1 -1
View File
@@ -17,6 +17,6 @@ jobs:
uses: jbolda/covector/packages/action@covector-v0 uses: jbolda/covector/packages/action@covector-v0
id: covector id: covector
with: with:
command: "status" command: 'status'
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
comment: true comment: true
@@ -34,8 +34,8 @@ jobs:
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
registry-url: "https://registry.npmjs.org" registry-url: 'https://registry.npmjs.org'
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
@@ -65,7 +65,7 @@ jobs:
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
command: "version-or-publish" command: 'version-or-publish'
createRelease: true createRelease: true
recognizeContributors: true recognizeContributors: true
@@ -78,8 +78,8 @@ jobs:
uses: tauri-apps/create-pull-request@v3 uses: tauri-apps/create-pull-request@v3
if: steps.covector.outputs.commandRan == 'version' if: steps.covector.outputs.commandRan == 'version'
with: with:
title: "Publish New Versions (${{ github.ref_name }})" title: 'Publish New Versions (${{ github.ref_name }})'
commit-message: "publish new versions" commit-message: 'publish new versions'
labels: "version updates" labels: 'version updates'
branch: "ci/release-${{ github.ref_name }}" branch: 'ci/release-${{ github.ref_name }}'
body: ${{ steps.covector.outputs.change }} body: ${{ steps.covector.outputs.change }}
+59
View File
@@ -0,0 +1,59 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check formatting
on:
pull_request:
jobs:
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: run cargo fmt
run: cargo fmt --all -- --check
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
version: 9.x.x
run_install: true
- run: pnpm format:check
taplo:
name: taplo (.toml files)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install taplo-cli
uses: taiki-e/install-action@v2
with:
tool: taplo-cli
- run: taplo fmt --check --diff
+7 -7
View File
@@ -10,15 +10,15 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/integration-tests.yml" - '.github/workflows/integration-tests.yml'
- "plugins/updater/src/**" - 'plugins/updater/src/**'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/integration-tests.yml" - '.github/workflows/integration-tests.yml'
- "plugins/updater/src/**" - 'plugins/updater/src/**'
jobs: jobs:
run-integration-tests: run-integration-tests:
@@ -27,7 +27,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
platform: [ubuntu-latest, macos-latest, windows-latest] platform: [ubuntu-22.04, macos-latest, windows-latest]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -38,10 +38,10 @@ jobs:
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- name: install Linux dependencies - name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest' if: matrix.platform == 'ubuntu-22.04'
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libfuse2 sudo apt-get install -y webkit2gtk-4.0 libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libfuse2
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
+13 -33
View File
@@ -10,23 +10,23 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-javascript.yml" - '.github/workflows/lint-javascript.yml'
- "plugins/*/guest-js/**" - 'plugins/*/guest-js/**'
- ".eslintignore" - '.eslintignore'
- ".eslintrc.json" - '.eslintrc.json'
- ".prettierignore" - '.prettierignore'
- "**/package.json" - '**/package.json'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-javascript.yml" - '.github/workflows/lint-javascript.yml'
- "plugins/*/guest-js/**" - 'plugins/*/guest-js/**'
- ".eslintignore" - '.eslintignore'
- ".eslintrc.json" - '.eslintrc.json'
- ".prettierignore" - '.prettierignore'
- "**/package.json" - '**/package.json'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -46,30 +46,10 @@ jobs:
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
version: 9.x.x version: 9.x.x
run_install: true run_install: true
- name: eslint - name: eslint
run: pnpm lint run: pnpm lint
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
- uses: pnpm/action-setup@v4
with:
version: 9.x.x
run_install: true
- name: prettier check
run: pnpm format-check
+13 -40
View File
@@ -10,19 +10,19 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-rust.yml" - '.github/workflows/lint-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-rust.yml" - '.github/workflows/lint-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -41,9 +41,6 @@ jobs:
id: filter id: filter
with: with:
filters: | filters: |
tauri-plugin-authenticator:
- .github/workflows/lint-rust.yml
- plugins/authenticator/**
tauri-plugin-autostart: tauri-plugin-autostart:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/autostart/** - plugins/autostart/**
@@ -129,7 +126,7 @@ jobs:
clippy: clippy:
needs: changes needs: changes
if: ${{ needs.changes.outputs.packages != '[]' && needs.changes.outputs.packages != '' }} if: ${{ needs.changes.outputs.packages != '[]' && needs.changes.outputs.packages != '' }}
runs-on: ubuntu-latest runs-on: ubuntu-22.04
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -138,10 +135,10 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: install webkit2gtk and libudev for [authenticator] - name: install webkit2gtk
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev
- name: Install clippy with stable toolchain - name: Install clippy with stable toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
@@ -150,32 +147,8 @@ jobs:
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: create dummy dist
working-directory: examples/api
run: mkdir dist
- name: clippy ${{ matrix.package }} - name: clippy ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings
- name: clippy ${{ matrix.package }} mysql - name: clippy ${{ matrix.package }} --all-features
if: matrix.package == 'tauri-plugin-sql' run: cargo clippy --package ${{ matrix.package }} --all-targets --all-features -- -D warnings
run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features mysql -- -D warnings
- name: clippy ${{ matrix.package }} postgres
if: matrix.package == 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features postgres -- -D warnings
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install rustfmt with nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Check formatting
run: cargo fmt --all -- --check
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
+25 -51
View File
@@ -10,21 +10,21 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/test-rust.yml" - '.github/workflows/test-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
- "**/Cargo.lock" - '**/Cargo.lock'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/test-rust.yml" - '.github/workflows/test-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
- "**/Cargo.lock" - '**/Cargo.lock'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -44,10 +44,6 @@ jobs:
with: with:
base: v2 base: v2
filters: | filters: |
tauri-plugin-authenticator:
- .github/workflows/test-rust.yml
- Cargo.toml
- plugins/authenticator/**
tauri-plugin-autostart: tauri-plugin-autostart:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml - Cargo.toml
@@ -167,32 +163,32 @@ jobs:
- { - {
target: x86_64-pc-windows-msvc, target: x86_64-pc-windows-msvc,
os: windows-latest, os: windows-latest,
runner: "cargo", runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: x86_64-unknown-linux-gnu, target: x86_64-unknown-linux-gnu,
os: ubuntu-latest, os: ubuntu-22.04,
runner: "cargo", runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: aarch64-apple-darwin, target: aarch64-apple-darwin,
os: macos-latest, os: macos-latest,
runner: "cargo", runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: aarch64-apple-ios, target: aarch64-apple-ios,
os: macos-latest, os: macos-latest,
runner: "cargo", runner: 'cargo',
command: "build", command: 'build'
} }
- { - {
target: aarch64-linux-android, target: aarch64-linux-android,
os: ubuntu-latest, os: ubuntu-latest,
runner: "cross", runner: 'cross',
command: "build", command: 'build'
} }
runs-on: ${{ matrix.platform.os }} runs-on: ${{ matrix.platform.os }}
@@ -200,19 +196,13 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: install webkit2gtk and libudev for [authenticator] - name: install webkit2gtk
if: contains(matrix.platform.target, 'unknown-linux') if: contains(matrix.platform.target, 'unknown-linux')
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev
- name: install openssl - uses: dtolnay/rust-toolchain@1.77.2
if: ${{ matrix.platform.os == 'windows-latest' && matrix.package == 'tauri-plugin-authenticator' }}
run: |
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
vcpkg install openssl:x64-windows-static-md
- uses: dtolnay/rust-toolchain@1.75.0
with: with:
targets: ${{ matrix.platform.target }} targets: ${{ matrix.platform.target }}
@@ -220,30 +210,14 @@ jobs:
with: with:
key: cache-${{ matrix.package }}-${{ matrix.platform.target }} key: cache-${{ matrix.package }}-${{ matrix.platform.target }}
- name: create dummy dist
working-directory: examples/api
run: mkdir dist
- name: install cross - name: install cross
if: ${{ matrix.platform.runner == 'cross' }} if: ${{ matrix.platform.runner == 'cross' }}
run: cargo +stable install cross --git https://github.com/cross-rs/cross run: cargo +stable install cross --git https://github.com/cross-rs/cross
- name: test ${{ matrix.package }} - name: test ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql' && matrix.package != 'tauri-plugin-http' if: matrix.package != 'tauri-plugin-http'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features
- name: test ${{ matrix.package }} - name: test ${{ matrix.package }}
if: matrix.package == 'tauri-plugin-http' if: matrix.package == 'tauri-plugin-http'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets
- name: test ${{ matrix.package }} sqlite
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features sqlite
- name: test ${{ matrix.package }} mysql
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features mysql
- name: test ${{ matrix.package }} postgres
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features postgres
+57 -7
View File
@@ -1,8 +1,58 @@
target # dependency directories
node_modules node_modules/
dist-js target/
dist
# Optional npm and yarn cache directory
.npm/
.yarn/
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# .vscode workspace settings file
.vscode/settings.json
# npm, yarn and bun lock files
package-lock.json
yarn.lock
bun.lockb
# rust compiled folders
target/
# compiled plugins
dist-js/
# plugins .tauri directory
/plugins/*/.tauri
# examples
examples/*/dist
plugins/*/examples/*/dist
examples/*/src-tauri/gen/schemas
plugins/*/examples/*/src-tauri/gen/schemas
# logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# runtime data
pids
*.pid
*.seed
*.pid.lock
# miscellaneous
/.vs
.DS_Store
.Thumbs.db
*.sublime*
.idea .idea
.vscode debug.log
.gradle TODO.md
**/capabilities/schemas
+23 -8
View File
@@ -1,12 +1,27 @@
target /.changes
node_modules /.vscode
dist
dist-js # dependcies and artifacts directories
node_modules/
target/
dist-js/
dist/
# lock files
pnpm-lock.yaml pnpm-lock.yaml
Cargo.lock
.build # examples gen directory
build examples/*/src-tauri/gen/
plugins/*/examples/*/src-tauri/gen/
# autogenerated files
**/autogenerated/**/*.md
api-iife.js api-iife.js
init-iife.js init-iife.js
intermediates/ CHANGELOG.md
*schema.json *schema.json
# mobile build
**/ios/.build
**/.tauri
plugins/*/android/build
+5
View File
@@ -0,0 +1,5 @@
{
"singleQuote": true,
"semi": false,
"trailingComma": "none"
}
+59 -59
View File
@@ -2,129 +2,129 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import fs from "fs"; import fs from 'fs'
import path from "path"; import path from 'path'
import readline from "readline"; import readline from 'readline'
const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: MIT`; SPDX-License-Identifier: MIT`
const ignoredLicenses = [ const ignoredLicenses = [
"// Copyright 2021 Flavio Oliveira", '// Copyright 2021 Flavio Oliveira',
"// Copyright 2021 Jonas Kruckenberg", '// Copyright 2021 Jonas Kruckenberg',
"// Copyright 2018-2023 the Deno authors.", '// Copyright 2018-2023 the Deno authors.'
]; ]
const extensions = [".rs", ".js", ".ts", ".yml", ".swift", ".kt"]; const extensions = ['.rs', '.js', '.ts', '.yml', '.swift', '.kt']
const ignore = [ const ignore = [
"target", 'target',
"templates", 'templates',
"node_modules", 'node_modules',
"gen", 'gen',
"dist", 'dist',
"dist-js", 'dist-js',
".svelte-kit", '.svelte-kit',
"api-iife.js", 'api-iife.js',
"init-iife.js", 'init-iife.js',
".build", '.build',
"notify_rust", 'notify_rust'
]; ]
async function checkFile(file) { async function checkFile(file) {
if ( if (
extensions.some((e) => file.endsWith(e)) && extensions.some((e) => file.endsWith(e)) &&
!ignore.some((i) => file.includes(`${path.sep}${i}`)) !ignore.some((i) => file.includes(`${path.sep}${i}`))
) { ) {
const fileStream = fs.createReadStream(file); const fileStream = fs.createReadStream(file)
const rl = readline.createInterface({ const rl = readline.createInterface({
input: fileStream, input: fileStream,
crlfDelay: Infinity, crlfDelay: Infinity
}); })
let contents = ``; let contents = ``
let i = 0; let i = 0
for await (let line of rl) { for await (let line of rl) {
// ignore empty lines, allow shebang, swift-tools-version and bundler license // ignore empty lines, allow shebang, swift-tools-version and bundler license
if ( if (
line.length === 0 || line.length === 0 ||
line.startsWith("#!") || line.startsWith('#!') ||
line.startsWith("// swift-tools-version:") || line.startsWith('// swift-tools-version:') ||
ignoredLicenses.includes(line) ignoredLicenses.includes(line)
) { ) {
continue; continue
} }
// strip comment marker // strip comment marker
if (line.startsWith("// ")) { if (line.startsWith('// ')) {
line = line.substring(3); line = line.substring(3)
} else if (line.startsWith("# ")) { } else if (line.startsWith('# ')) {
line = line.substring(2); line = line.substring(2)
} }
contents += line; contents += line
if (++i === 3) { if (++i === 3) {
break; break
} }
contents += "\n"; contents += '\n'
} }
if (contents !== header) { if (contents !== header) {
return true; return true
} }
} }
return false; return false
} }
async function check(src) { async function check(src) {
const missingHeader = []; const missingHeader = []
for (const entry of fs.readdirSync(src, { for (const entry of fs.readdirSync(src, {
withFileTypes: true, withFileTypes: true
})) { })) {
const p = path.join(src, entry.name); const p = path.join(src, entry.name)
if (entry.isSymbolicLink() || ignore.includes(entry.name)) { if (entry.isSymbolicLink() || ignore.includes(entry.name)) {
continue; continue
} }
if (entry.isDirectory()) { if (entry.isDirectory()) {
const missing = await check(p); const missing = await check(p)
missingHeader.push(...missing); missingHeader.push(...missing)
} else { } else {
const isMissing = await checkFile(p); const isMissing = await checkFile(p)
if (isMissing) { if (isMissing) {
missingHeader.push(p); missingHeader.push(p)
} }
} }
} }
return missingHeader; return missingHeader
} }
const [_bin, _script, ...files] = process.argv; const [_bin, _script, ...files] = process.argv
if (files.length > 0) { if (files.length > 0) {
async function run() { async function run() {
const missing = []; const missing = []
for (const f of files) { for (const f of files) {
const isMissing = await checkFile(f); const isMissing = await checkFile(f)
if (isMissing) { if (isMissing) {
missing.push(f); missing.push(f)
} }
} }
if (missing.length > 0) { if (missing.length > 0) {
console.log(missing.join("\n")); console.log(missing.join('\n'))
process.exit(1); process.exit(1)
} }
} }
run(); run()
} else { } else {
check(path.resolve(new URL(import.meta.url).pathname, "../../..")).then( check(path.resolve(new URL(import.meta.url).pathname, '../../..')).then(
(missing) => { (missing) => {
if (missing.length > 0) { if (missing.length > 0) {
console.log(missing.join("\n")); console.log(missing.join('\n'))
process.exit(1); process.exit(1)
} }
}, }
); )
} }
+8
View File
@@ -0,0 +1,8 @@
{
"recommendations": [
"rust-lang.rust-analyzer",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"tamasfe.even-better-toml"
]
}
Generated
+1348 -959
View File
File diff suppressed because it is too large Load Diff
+7 -9
View File
@@ -2,6 +2,7 @@
members = [ members = [
"plugins/*", "plugins/*",
"plugins/*/tests/*", "plugins/*/tests/*",
"plugins/updater/tests/updater-migration/v2-app",
"plugins/*/examples/*/src-tauri", "plugins/*/examples/*/src-tauri",
"examples/*/src-tauri", "examples/*/src-tauri",
] ]
@@ -10,23 +11,23 @@ resolver = "2"
[workspace.dependencies] [workspace.dependencies]
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
log = "0.4" log = "0.4"
tauri = { version = "2.0.0-rc.0", default-features = false } tauri = { version = "2.0.4", default-features = false }
tauri-build = "2.0.0-rc.0" tauri-build = "2.0.1"
tauri-plugin = "2.0.0-rc.0" tauri-plugin = "2.0.1"
tauri-utils = "2.0.0-rc.0" tauri-utils = "2.0.1"
serde_json = "1" serde_json = "1"
thiserror = "1" thiserror = "1"
url = "2" url = "2"
schemars = "0.8" schemars = "0.8"
dunce = "1" dunce = "1"
specta = "=2.0.0-rc.16" specta = "=2.0.0-rc.20"
#tauri-specta = "=2.0.0-rc.11" #tauri-specta = "=2.0.0-rc.11"
[workspace.package] [workspace.package]
edition = "2021" edition = "2021"
authors = ["Tauri Programme within The Commons Conservancy"] authors = ["Tauri Programme within The Commons Conservancy"]
license = "Apache-2.0 OR MIT" license = "Apache-2.0 OR MIT"
rust-version = "1.75" rust-version = "1.77.2"
repository = "https://github.com/tauri-apps/plugins-workspace" repository = "https://github.com/tauri-apps/plugins-workspace"
# default to small, optimized release binaries # default to small, optimized release binaries
@@ -36,6 +37,3 @@ codegen-units = 1
lto = true lto = true
incremental = false incremental = false
opt-level = "s" opt-level = "s"
[patch.crates-io]
iota-crypto = { git = "https://github.com/iotaledger/crypto.rs", rev = "489aa0e7936d0e491503f778a83cfc6ed1b28fe7" }
+34 -31
View File
@@ -1,37 +1,40 @@
## Plugins Found Here ## Plugins Found Here
| | | Win | Mac | Lin | iOS | And | | | | Win | Mac | Lin | iOS | And |
| ----------------------------------------------- | ------------------------------------------------------ | --- | --- | --- | --- | --- | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- | --- | --- | --- |
| [authenticator](plugins/authenticator) | Interface with hardware security keys. | ✅ | ✅ | ✅ | ? | ? | | [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ? | ? |
| [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | | ? | ? | | [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ |
| [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ | | [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ | | [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? |
| [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? | | [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | | |
| [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ | | [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ | | [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | | | | [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? |
| [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? | | [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? |
| [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? | | [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | |
| [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | | | [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? |
| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? | | [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | ✅ | |
| [log](plugins/log) | Configurable logging. | | | | ✅ | ✅ | | [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ | | [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | | ✅ | ✅ | ✅ | ✅ |
| [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ | | [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | | | | [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? |
| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? | | [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? |
| [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? | | [process](plugins/process) | This plugin provides APIs to access the current process. To spawn child processes, see the [`shell`](https://github.com/tauri-apps/tauri-plugin-shell) plugin. | ✅ | ✅ | ✅ | ? | ? |
| [process](plugins/process) | This plugin provides APIs to access the current process. To spawn child processes, see the [`shell`](https://github.com/tauri-apps/tauri-plugin-shell) plugin. | ✅ | ✅ | ✅ | ? | ? | | [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? |
| [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | | ✅ | ? | ? | | [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? |
| [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? | | [sql](plugins/sql) | Interface with SQL databases. | ✅ | | ✅ | ? | ? |
| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? | | [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | |
| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | | | | [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? |
| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? | | [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? |
| [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? | | [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? |
| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? | | [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? |
| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | | [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? |
| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? |
_This repo and all plugins require a Rust version of at least **1.75**_ _This repo and all plugins require a Rust version of at least **1.77.2**_
## Contributing
PRs accepted. Please make sure to read the [Contributing Guide](https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md) before making a pull request.
## Partners ## Partners
+23 -22
View File
@@ -2,28 +2,29 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import eslint from "@eslint/js"; import eslint from '@eslint/js'
import eslintConfigPrettier from "eslint-config-prettier"; import eslintConfigPrettier from 'eslint-config-prettier'
import eslintPluginSecurity from "eslint-plugin-security"; import eslintPluginSecurity from 'eslint-plugin-security'
import tseslint from "typescript-eslint"; import tseslint from 'typescript-eslint'
export default tseslint.config( export default tseslint.config(
{ {
ignores: [ ignores: [
"**/target", '**/target',
"**/node_modules", '**/node_modules',
"**/examples", '**/examples',
"**/dist", '**/dist',
"**/dist-js", '**/dist-js',
"**/build", '**/build',
"**/api-iife.js", '**/api-iife.js',
"**/init-iife.js", '**/init-iife.js',
"**/init.js", '**/init.js',
"**/rollup.config.js", '**/rollup.config.js',
"**/bindings.ts", '**/bindings.ts',
".scripts", '**/.test-server',
"eslint.config.js", '.scripts',
], 'eslint.config.js'
]
}, },
eslint.configs.recommended, eslint.configs.recommended,
eslintConfigPrettier, eslintConfigPrettier,
@@ -31,7 +32,7 @@ export default tseslint.config(
...tseslint.configs.recommendedTypeChecked, ...tseslint.configs.recommendedTypeChecked,
{ {
languageOptions: { languageOptions: {
parserOptions: { project: true, tsconfigRootDir: import.meta.dirname }, parserOptions: { project: true, tsconfigRootDir: import.meta.dirname }
}, }
}, }
); )
-4
View File
@@ -1,4 +0,0 @@
/node_modules/
/.vscode/
.DS_Store
.cargo
+80
View File
@@ -1,5 +1,85 @@
# Changelog # Changelog
## \[2.0.1]
### Dependencies
- Upgraded to `dialog-js@2.0.1`
- Upgraded to `fs-js@2.0.1`
- Upgraded to `http-js@2.0.1`
- Upgraded to `shell-js@2.0.1`
- Upgraded to `store-js@2.1.0`
## \[2.0.0]
- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release.
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0`
- Upgraded to `biometric-js@2.0.0`
- Upgraded to `cli-js@2.0.0`
- Upgraded to `clipboard-manager-js@2.0.0`
- Upgraded to `fs-js@2.0.0`
- Upgraded to `dialog-js@2.0.0`
- Upgraded to `global-shortcut-js@2.0.0`
- Upgraded to `http-js@2.0.0`
- Upgraded to `log-js@2.0.0`
- Upgraded to `nfc-js@2.0.0`
- Upgraded to `notification-js@2.0.0`
- Upgraded to `os-js@2.0.0`
- Upgraded to `process-js@2.0.0`
- Upgraded to `shell-js@2.0.0`
- Upgraded to `store-js@2.0.0`
- Upgraded to `updater-js@2.0.0`
## \[2.0.0-rc.5]
### Dependencies
- Upgraded to `store-js@2.0.0-rc.2`
## \[2.0.0-rc.4]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-rc.2`
- Upgraded to `clipboard-manager-js@2.0.0-rc.2`
## \[2.0.0-rc.3]
### Dependencies
- Upgraded to `updater-js@2.0.0-rc.2`
## \[2.0.0-rc.2]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-rc.1`
- Upgraded to `notification-js@2.0.0-rc.1`
- Upgraded to `dialog-js@2.0.0-rc.1`
- Upgraded to `biometric-js@2.0.0-rc.1`
- Upgraded to `cli-js@2.0.0-rc.1`
- Upgraded to `clipboard-manager-js@2.0.0-rc.1`
- Upgraded to `fs-js@2.0.0-rc.2`
- Upgraded to `global-shortcut-js@2.0.0-rc.1`
- Upgraded to `http-js@2.0.0-rc.2`
- Upgraded to `log-js@2.0.0-rc.1`
- Upgraded to `nfc-js@2.0.0-rc.1`
- Upgraded to `os-js@2.0.0-rc.1`
- Upgraded to `process-js@2.0.0-rc.1`
- Upgraded to `shell-js@2.0.0-rc.1`
- Upgraded to `store-js@2.0.0-rc.1`
- Upgraded to `updater-js@2.0.0-rc.1`
## \[2.0.0-rc.1]
### Dependencies
- Upgraded to `http-js@2.0.0-rc.1`
- Upgraded to `fs-js@2.0.0-rc.1`
## \[2.0.0-rc.0] ## \[2.0.0-rc.0]
### Dependencies ### Dependencies
+2 -2
View File
@@ -3,5 +3,5 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
window.__TAURI_ISOLATION_HOOK__ = (payload) => { window.__TAURI_ISOLATION_HOOK__ = (payload) => {
return payload; return payload
}; }
+4 -6
View File
@@ -1,14 +1,14 @@
{ {
"compilerOptions": { "compilerOptions": {
"moduleResolution": "node", "moduleResolution": "bundler",
"target": "esnext", "target": "ESNext",
"module": "esnext", "module": "ESNext",
/** /**
* svelte-preprocess cannot figure out whether you have * svelte-preprocess cannot figure out whether you have
* a value or a type, so tell TypeScript to enforce using * a value or a type, so tell TypeScript to enforce using
* `import type` instead of `import` for Types. * `import type` instead of `import` for Types.
*/ */
"importsNotUsedAsValues": "error", "verbatimModuleSyntax": true,
"isolatedModules": true, "isolatedModules": true,
"resolveJsonModule": true, "resolveJsonModule": true,
/** /**
@@ -18,8 +18,6 @@
"sourceMap": true, "sourceMap": true,
"esModuleInterop": true, "esModuleInterop": true,
"skipLibCheck": true, "skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": ".",
/** /**
* Typecheck JS in `.svelte` and `.js` files by default. * Typecheck JS in `.svelte` and `.js` files by default.
* Disable this if you'd like to use dynamic types. * Disable this if you'd like to use dynamic types.
+25 -23
View File
@@ -1,7 +1,7 @@
{ {
"name": "svelte-app", "name": "svelte-app",
"private": true, "private": true,
"version": "2.0.0-rc.0", "version": "2.0.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --clearScreen false", "dev": "vite --clearScreen false",
@@ -9,32 +9,34 @@
"serve": "vite preview" "serve": "vite preview"
}, },
"dependencies": { "dependencies": {
"@tauri-apps/api": "2.0.0-rc.0", "@tauri-apps/api": "2.0.2",
"@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.0", "@tauri-apps/plugin-barcode-scanner": "2.0.0",
"@tauri-apps/plugin-biometric": "2.0.0-rc.0", "@tauri-apps/plugin-biometric": "2.0.0",
"@tauri-apps/plugin-cli": "2.0.0-rc.0", "@tauri-apps/plugin-cli": "2.0.0",
"@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.0", "@tauri-apps/plugin-clipboard-manager": "2.0.0",
"@tauri-apps/plugin-dialog": "2.0.0-rc.0", "@tauri-apps/plugin-dialog": "2.0.1",
"@tauri-apps/plugin-fs": "2.0.0-rc.0", "@tauri-apps/plugin-fs": "2.0.1",
"@tauri-apps/plugin-global-shortcut": "2.0.0-rc.0", "@tauri-apps/plugin-geolocation": "2.0.0",
"@tauri-apps/plugin-http": "2.0.0-rc.0", "@tauri-apps/plugin-global-shortcut": "2.0.0",
"@tauri-apps/plugin-nfc": "2.0.0-rc.0", "@tauri-apps/plugin-haptics": "2.0.0",
"@tauri-apps/plugin-notification": "2.0.0-rc.0", "@tauri-apps/plugin-http": "2.0.1",
"@tauri-apps/plugin-os": "2.0.0-rc.0", "@tauri-apps/plugin-nfc": "2.0.0",
"@tauri-apps/plugin-process": "2.0.0-rc.0", "@tauri-apps/plugin-notification": "2.0.0",
"@tauri-apps/plugin-shell": "2.0.0-rc.0", "@tauri-apps/plugin-os": "2.0.0",
"@tauri-apps/plugin-updater": "2.0.0-rc.0", "@tauri-apps/plugin-process": "2.0.0",
"@zerodevx/svelte-json-view": "1.0.9" "@tauri-apps/plugin-shell": "2.0.1",
"@tauri-apps/plugin-store": "2.1.0",
"@tauri-apps/plugin-updater": "2.0.0",
"@zerodevx/svelte-json-view": "1.0.11"
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/codicon": "^1.1.37", "@iconify-json/codicon": "^1.1.37",
"@iconify-json/ph": "^1.1.8", "@iconify-json/ph": "^1.1.8",
"@sveltejs/vite-plugin-svelte": "^3.0.1", "@sveltejs/vite-plugin-svelte": "^3.0.1",
"@tauri-apps/cli": "2.0.0-rc.0", "@tauri-apps/cli": "2.0.3",
"@unocss/extractor-svelte": "^0.61.0", "@unocss/extractor-svelte": "^0.63.0",
"internal-ip": "7.0.0", "svelte": "^4.2.19",
"svelte": "^4.2.8", "unocss": "^0.63.0",
"unocss": "^0.61.0", "vite": "^5.4.7"
"vite": "^5.0.13"
} }
} }
+174
View File
@@ -1,5 +1,179 @@
# Changelog # Changelog
## \[2.0.4]
### Dependencies
- Upgraded to `fs@2.0.3`
- Upgraded to `dialog@2.0.3`
- Upgraded to `http@2.0.3`
## \[2.0.3]
### Dependencies
- Upgraded to `dialog@2.0.2`
- Upgraded to `fs@2.0.2`
- Upgraded to `http@2.0.2`
- Upgraded to `shell@2.0.2`
- Upgraded to `store@2.1.0`
## \[2.0.2]
- [`a1a82208`](https://github.com/tauri-apps/plugins-workspace/commit/a1a82208ed4ab87f83310be0dc95428aec9ab241) ([#1873](https://github.com/tauri-apps/plugins-workspace/pull/1873) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Downgrade MSRV to 1.77.2 to support Windows 7.
### Dependencies
- Upgraded to `barcode-scanner@2.0.1`
- Upgraded to `biometric@2.0.1`
- Upgraded to `cli@2.0.1`
- Upgraded to `clipboard-manager@2.0.1`
- Upgraded to `fs@2.0.1`
- Upgraded to `dialog@2.0.1`
- Upgraded to `geolocation@2.0.1`
- Upgraded to `global-shortcut@2.0.1`
- Upgraded to `haptics@2.0.1`
- Upgraded to `http@2.0.1`
- Upgraded to `log-plugin@2.0.1`
- Upgraded to `nfc@2.0.1`
- Upgraded to `notification@2.0.1`
- Upgraded to `os@2.0.1`
- Upgraded to `process@2.0.1`
- Upgraded to `shell@2.0.1`
- Upgraded to `store@2.0.1`
- Upgraded to `updater@2.0.2`
## \[2.0.1]
### Dependencies
- Upgraded to `updater@2.0.1`
## \[2.0.0]
- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release.
### Dependencies
- Upgraded to `barcode-scanner@2.0.0`
- Upgraded to `biometric@2.0.0`
- Upgraded to `cli@2.0.0`
- Upgraded to `clipboard-manager@2.0.0`
- Upgraded to `fs@2.0.0`
- Upgraded to `dialog@2.0.0`
- Upgraded to `global-shortcut@2.0.0`
- Upgraded to `http@2.0.0`
- Upgraded to `log-plugin@2.0.0`
- Upgraded to `nfc@2.0.0`
- Upgraded to `notification@2.0.0`
- Upgraded to `os@2.0.0`
- Upgraded to `process@2.0.0`
- Upgraded to `shell@2.0.0`
- Upgraded to `store@2.0.0`
- Upgraded to `updater@2.0.0`
## \[2.0.0-rc.8]
### Dependencies
- Upgraded to `cli@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.8`
- Upgraded to `fs@2.0.0-rc.6`
- Upgraded to `shell@2.0.0-rc.4`
- Upgraded to `store@2.0.0-rc.4`
- Upgraded to `updater@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.6`
## \[2.0.0-rc.7]
### Dependencies
- Upgraded to `clipboard-manager@2.0.0-rc.4`
- Upgraded to `fs@2.0.0-rc.5`
- Upgraded to `notification@2.0.0-rc.5`
- Upgraded to `dialog@2.0.0-rc.7`
- Upgraded to `http@2.0.0-rc.5`
## \[2.0.0-rc.6]
### Dependencies
- Upgraded to `dialog@2.0.0-rc.6`
- Upgraded to `fs@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.4`
## \[2.0.0-rc.5]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.4`
- Upgraded to `notification@2.0.0-rc.4`
## \[2.0.0-rc.4]
### Dependencies
- Upgraded to `fs@2.0.0-rc.3`
- Upgraded to `dialog@2.0.0-rc.5`
- Upgraded to `updater@2.0.0-rc.3`
- Upgraded to `http@2.0.0-rc.3`
## \[2.0.0-rc.3]
### Dependencies
- Upgraded to `fs@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.2`
## \[2.0.0-rc.2]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.3`
- Upgraded to `notification@2.0.0-rc.3`
- Upgraded to `dialog@2.0.0-rc.3`
- Upgraded to `fs@2.0.0-rc.1`
- Upgraded to `global-shortcut@2.0.0-rc.2`
- Upgraded to `store@2.0.0-rc.3`
- Upgraded to `biometric@2.0.0-rc.3`
- Upgraded to `cli@2.0.0-rc.1`
- Upgraded to `clipboard-manager@2.0.0-rc.3`
- Upgraded to `http@2.0.0-rc.1`
- Upgraded to `log-plugin@2.0.0-rc.2`
- Upgraded to `nfc@2.0.0-rc.3`
- Upgraded to `os@2.0.0-rc.1`
- Upgraded to `process@2.0.0-rc.1`
- Upgraded to `shell@2.0.0-rc.3`
- Upgraded to `updater@2.0.0-rc.2`
## \[2.0.0-rc.1]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.2`
- Upgraded to `biometric@2.0.0-rc.2`
- Upgraded to `clipboard-manager@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.2`
- Upgraded to `log-plugin@2.0.0-rc.1`
- Upgraded to `nfc@2.0.0-rc.2`
- Upgraded to `notification@2.0.0-rc.2`
- Upgraded to `shell@2.0.0-rc.2`
## \[2.0.0-rc.0]
### Dependencies
- Upgraded to `dialog@2.0.0-rc.1`
- Upgraded to `updater@2.0.0-rc.1`
- Upgraded to `barcode-scanner@2.0.0-rc.1`
- Upgraded to `clipboard-manager@2.0.0-rc.1`
- Upgraded to `global-shortcut@2.0.0-rc.1`
- Upgraded to `biometric@2.0.0-rc.1`
- Upgraded to `nfc@2.0.0-rc.1`
- Upgraded to `notification@2.0.0-rc.1`
- Upgraded to `shell@2.0.0-rc.1`
## \[2.0.0-beta.17] ## \[2.0.0-beta.17]
### Dependencies ### Dependencies
+20 -19
View File
@@ -1,7 +1,7 @@
[package] [package]
name = "api" name = "api"
publish = false publish = false
version = "2.0.0-beta.17" version = "2.0.4"
description = "An example Tauri Application showcasing the api" description = "An example Tauri Application showcasing the api"
edition = "2021" edition = "2021"
rust-version = { workspace = true } rust-version = { workspace = true }
@@ -19,21 +19,22 @@ serde_json = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
tiny_http = "0.12" tiny_http = "0.12"
log = { workspace = true } log = { workspace = true }
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.0" } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.1" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.0", features = [ tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.3", features = [
"watch", "watch",
] } ] }
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.0" } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.1" }
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.0" } tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.3" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ tauri-plugin-http = { path = "../../../plugins/http", features = [
"multipart", "multipart",
], version = "2.0.0-rc.0" } ], version = "2.0.3" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.0", features = [ tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.1", features = [
"windows7-compat", "windows7-compat",
] } ] }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-rc.0" } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.1" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-rc.0" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.1" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-rc.0" } tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.2" }
tauri-plugin-store = { path = "../../../plugins/store", version = "2.1.0" }
[dependencies.tauri] [dependencies.tauri]
workspace = true workspace = true
@@ -49,17 +50,17 @@ features = [
] ]
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.0" } tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.1" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-rc.0" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.1" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.0" } tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.2" }
tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0" }
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.0" } tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.1" }
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-rc.0" } tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.1" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-rc.0" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.1" }
tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.1" }
[target."cfg(target_os = \"windows\")".dependencies] tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.1" }
window-shadows = "0.2"
[features] [features]
prod = ["tauri/custom-protocol"] prod = ["tauri/custom-protocol"]
+10 -6
View File
@@ -1,10 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>Request camera access for WebRTC</string> <string>Request camera access for WebRTC</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Request microphone access for WebRTC</string> <string>Request microphone access for WebRTC</string>
</dict> <key>NSFaceIDUsageDescription</key>
<string>Authenticate with biometrics</string>
<key>NFCReaderUsageDescription</key>
<string>Read and write to NFC tags for testing</string>
</dict>
</plist> </plist>
@@ -2,9 +2,7 @@
"$schema": "../gen/schemas/desktop-schema.json", "$schema": "../gen/schemas/desktop-schema.json",
"identifier": "run-app-base", "identifier": "run-app-base",
"description": "Base permissions to run the app", "description": "Base permissions to run the app",
"windows": [ "windows": ["main"],
"main"
],
"permissions": [ "permissions": [
"log:default", "log:default",
{ {
@@ -63,6 +61,9 @@
"clipboard-manager:allow-write-text", "clipboard-manager:allow-write-text",
"clipboard-manager:allow-read-image", "clipboard-manager:allow-read-image",
"clipboard-manager:allow-write-image", "clipboard-manager:allow-write-image",
"fs:allow-open",
"fs:allow-write",
"fs:allow-read",
"fs:allow-rename", "fs:allow-rename",
"fs:allow-mkdir", "fs:allow-mkdir",
"fs:allow-remove", "fs:allow-remove",
@@ -76,9 +77,8 @@
"path": "$APPDATA/db/**" "path": "$APPDATA/db/**"
} }
], ],
"deny": [ "deny": ["$APPDATA/db/*.stronghold"]
"$APPDATA/db/*.stronghold" },
] "store:default"
}
] ]
} }
@@ -11,6 +11,10 @@
"barcode-scanner:allow-scan", "barcode-scanner:allow-scan",
"barcode-scanner:allow-cancel", "barcode-scanner:allow-cancel",
"barcode-scanner:allow-request-permissions", "barcode-scanner:allow-request-permissions",
"barcode-scanner:allow-check-permissions" "barcode-scanner:allow-check-permissions",
"geolocation:allow-check-permissions",
"geolocation:allow-request-permissions",
"geolocation:allow-watch-position",
"geolocation:allow-get-current-position"
] ]
} }
+5 -1
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
@@ -18,7 +19,7 @@
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" /> <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$USER_HOME$/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-2.0.0-beta.22/mobile/android" /> <option value="$USER_HOME$/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-2.0.2/mobile/android" />
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" /> <option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/buildSrc" /> <option value="$PROJECT_DIR$/buildSrc" />
@@ -26,6 +27,9 @@
<option value="$PROJECT_DIR$/../../../../../plugins/biometric/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/biometric/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/clipboard-manager/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/clipboard-manager/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/dialog/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/dialog/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/fs/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/geolocation/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/haptics/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/nfc/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/nfc/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/notification/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/notification/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/shell/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/shell/android" />
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="KotlinJpsPluginSettings"> <component name="KotlinJpsPluginSettings">
<option name="version" value="1.9.10" /> <option name="version" value="1.9.25" />
</component> </component>
</project> </project>
-1
View File
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
@@ -48,6 +48,9 @@ android {
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "1.8"
} }
buildFeatures {
buildConfig = true
}
} }
rust { rust {
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<!-- AndroidTV support -->
<uses-feature android:name="android.software.leanback" android:required="false" />
<application <application
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
@@ -15,6 +19,8 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
<!-- AndroidTV support -->
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter> </intent-filter>
<!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. --> <!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. -->
<intent-filter> <intent-filter>
@@ -4,8 +4,8 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.3.2") classpath("com.android.tools.build:gradle:8.5.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25")
} }
} }
@@ -18,6 +18,6 @@ repositories {
dependencies { dependencies {
compileOnly(gradleApi()) compileOnly(gradleApi())
implementation("com.android.tools.build:gradle:8.3.2") implementation("com.android.tools.build:gradle:8.5.1")
} }
@@ -21,5 +21,4 @@ kotlin.code.style=official
# resources declared in the library itself and none from the library's dependencies, # resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library # thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true android.nonTransitiveRClass=true
android.defaults.buildfeatures.buildconfig=true
android.nonFinalResIds=false android.nonFinalResIds=false
@@ -1,6 +1,6 @@
#Tue May 10 19:22:52 CST 2022 #Tue May 10 19:22:52 CST 2022
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@@ -3,6 +3,6 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>method</key> <key>method</key>
<string>development</string> <string>debugging</string>
</dict> </dict>
</plist> </plist>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17150" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17122"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="s0d-6b-0kx">
<objects>
<viewController id="Y6W-OH-hqX" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>
@@ -3,16 +3,17 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 51; objectVersion = 56;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
2ECFC1BC47D948875C8CEC41 /* libapi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC53D4128D7F74E4E6338455 /* libapi.a */; };
3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */; }; 3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */; };
328B4ADB3700C1873BEB7B10 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 90D3B673AFAB8D8AB561F616 /* main.mm */; }; 328B4ADB3700C1873BEB7B10 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 90D3B673AFAB8D8AB561F616 /* main.mm */; };
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6B7E79E23E646BA7968B457C /* Assets.xcassets */; }; 6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6B7E79E23E646BA7968B457C /* Assets.xcassets */; };
832F9A55FEDEF3D807D8C40A /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248286BAA086BB1A5F98B2B2 /* libapp.a */; };
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62601E25FA39E62BE119B74D /* Metal.framework */; }; 9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62601E25FA39E62BE119B74D /* Metal.framework */; };
9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6082E363D51372A7658C351 /* UIKit.framework */; }; 9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6082E363D51372A7658C351 /* UIKit.framework */; };
AC8BDC2C7A63FA3FDC5967F4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */; };
AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384966E551417F94A02D2706 /* Security.framework */; }; AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384966E551417F94A02D2706 /* Security.framework */; };
B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC377692DC31A070A0188C9D /* QuartzCore.framework */; }; B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC377692DC31A070A0188C9D /* QuartzCore.framework */; };
C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */; }; C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */; };
@@ -21,25 +22,26 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = "<group>"; }; 0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.rs; sourceTree = "<group>"; };
1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; path = tray.rs; sourceTree = "<group>"; }; 1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = tray.rs; sourceTree = "<group>"; };
248286BAA086BB1A5F98B2B2 /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = "<group>"; };
2F63E2AA460089BB58D40C79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 2F63E2AA460089BB58D40C79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
338E66700FD330B99D434DD7 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; 338E66700FD330B99D434DD7 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; };
384966E551417F94A02D2706 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 384966E551417F94A02D2706 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
5AC703CEBA41A121596066F3 /* api_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = api_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 5AC703CEBA41A121596066F3 /* Tauri API.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tauri API.app"; sourceTree = BUILT_PRODUCTS_DIR; };
62601E25FA39E62BE119B74D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; 62601E25FA39E62BE119B74D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
6B7E79E23E646BA7968B457C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 6B7E79E23E646BA7968B457C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
74A8FDFB350B966F5AAD4A24 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; 74A8FDFB350B966F5AAD4A24 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; };
785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = "<group>"; }; 785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = lib.rs; sourceTree = "<group>"; };
879941AE3DAA14534BBC6391 /* api_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = api_iOS.entitlements; sourceTree = "<group>"; }; 879941AE3DAA14534BBC6391 /* api_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = api_iOS.entitlements; sourceTree = "<group>"; };
90D3B673AFAB8D8AB561F616 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; }; 90D3B673AFAB8D8AB561F616 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
B6082E363D51372A7658C351 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; B6082E363D51372A7658C351 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
DC377692DC31A070A0188C9D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; DC377692DC31A070A0188C9D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; }; EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; };
F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; path = cmd.rs; sourceTree = "<group>"; }; F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = cmd.rs; sourceTree = "<group>"; };
FC53D4128D7F74E4E6338455 /* libapi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapi.a; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -47,7 +49,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
2ECFC1BC47D948875C8CEC41 /* libapi.a in Frameworks */, 832F9A55FEDEF3D807D8C40A /* libapp.a in Frameworks */,
3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */, 3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */,
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */, 9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */,
DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */, DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */,
@@ -66,6 +68,7 @@
children = ( children = (
74A8FDFB350B966F5AAD4A24 /* assets */, 74A8FDFB350B966F5AAD4A24 /* assets */,
6B7E79E23E646BA7968B457C /* Assets.xcassets */, 6B7E79E23E646BA7968B457C /* Assets.xcassets */,
4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */,
F2116A6428EED18BE2A07E2B /* api_iOS */, F2116A6428EED18BE2A07E2B /* api_iOS */,
86D903732E10FAC4D300E8DF /* Externals */, 86D903732E10FAC4D300E8DF /* Externals */,
7A9A7AC155D9E22E54D6D847 /* Sources */, 7A9A7AC155D9E22E54D6D847 /* Sources */,
@@ -87,7 +90,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */, 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */,
FC53D4128D7F74E4E6338455 /* libapi.a */, 248286BAA086BB1A5F98B2B2 /* libapp.a */,
62601E25FA39E62BE119B74D /* Metal.framework */, 62601E25FA39E62BE119B74D /* Metal.framework */,
338E66700FD330B99D434DD7 /* MetalKit.framework */, 338E66700FD330B99D434DD7 /* MetalKit.framework */,
DC377692DC31A070A0188C9D /* QuartzCore.framework */, DC377692DC31A070A0188C9D /* QuartzCore.framework */,
@@ -101,7 +104,7 @@
4AC51E67B71E27F15B02C5CD /* Products */ = { 4AC51E67B71E27F15B02C5CD /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5AC703CEBA41A121596066F3 /* api_iOS.app */, 5AC703CEBA41A121596066F3 /* Tauri API.app */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -169,7 +172,7 @@
); );
name = api_iOS; name = api_iOS;
productName = api_iOS; productName = api_iOS;
productReference = 5AC703CEBA41A121596066F3 /* api_iOS.app */; productReference = 5AC703CEBA41A121596066F3 /* Tauri API.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
@@ -178,7 +181,8 @@
9BC88C3717DA5D4B78A51C15 /* Project object */ = { 9BC88C3717DA5D4B78A51C15 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 1200; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430;
TargetAttributes = { TargetAttributes = {
54DC6E273C78071F3BA12EF3 = { 54DC6E273C78071F3BA12EF3 = {
DevelopmentTeam = Q93MBH6S2F; DevelopmentTeam = Q93MBH6S2F;
@@ -186,7 +190,7 @@
}; };
}; };
buildConfigurationList = 8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */; buildConfigurationList = 8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */;
compatibilityVersion = "Xcode 11.0"; compatibilityVersion = "Xcode 14.0";
developmentRegion = en; developmentRegion = en;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
@@ -208,6 +212,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */, 6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */,
AC8BDC2C7A63FA3FDC5967F4 /* LaunchScreen.storyboard in Resources */,
F86717F05E27C72C9FA1FB27 /* assets in Resources */, F86717F05E27C72C9FA1FB27 /* assets in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@@ -229,12 +234,13 @@
outputFileListPaths = ( outputFileListPaths = (
); );
outputPaths = ( outputPaths = (
"$(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libapi.a", "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a",
"$(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libapi.a", "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a",
"$(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "node ../../../node_modules/.bin/../@tauri-apps/cli/tauri.js ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}"; shellScript = "pnpm tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}";
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
@@ -380,20 +386,42 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q93MBH6S2F; DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\".\"", "\".\"",
); );
INFOPLIST_FILE = api_iOS/Info.plist; INFOPLIST_FILE = api_iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
"LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = (
"LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(inherited)",
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=arm64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api; PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api;
PRODUCT_NAME = "Tauri API"; PRODUCT_NAME = "Tauri API";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -413,20 +441,42 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q93MBH6S2F; DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\".\"", "\".\"",
); );
INFOPLIST_FILE = api_iOS/Info.plist; INFOPLIST_FILE = api_iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
"LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = (
"LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(inherited)",
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=arm64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api; PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api;
PRODUCT_NAME = "Tauri API"; PRODUCT_NAME = "Tauri API";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1200" LastUpgradeVersion = "1430"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
@@ -2,10 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NFCReaderUsageDescription</key>
<string>NFC Test</string>
<key>NSCameraUsageDescription</key>
<string>Request camera access for WebRTC</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@@ -45,8 +41,12 @@
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>NSFaceIDUsageDescription</key> <key>NSFaceIDUsageDescription</key>
<string>Biometric Test</string> <string>Authenticate with biometrics</string>
<key>NSCameraUsageDescription</key>
<string>Request camera access for WebRTC</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Request microphone access for WebRTC</string> <string>Request microphone access for WebRTC</string>
<key>NFCReaderUsageDescription</key>
<string>Read and write to NFC tags for testing</string>
</dict> </dict>
</plist> </plist>
@@ -5,7 +5,6 @@
<key>com.apple.developer.nfc.readersession.formats</key> <key>com.apple.developer.nfc.readersession.formats</key>
<array> <array>
<string>TAG</string> <string>TAG</string>
<string>NDEF</string>
</array> </array>
</dict> </dict>
</plist> </plist>
+13 -9
View File
@@ -1,8 +1,8 @@
name: api name: api
options: options:
bundleIdPrefix: com.tauri bundleIdPrefix: com.tauri.api
deploymentTarget: deploymentTarget:
iOS: 13.0 iOS: 14.0
fileGroups: [../../src] fileGroups: [../../src]
configs: configs:
debug: debug debug: debug
@@ -36,6 +36,7 @@ targets:
- path: assets - path: assets
buildPhase: resources buildPhase: resources
type: folder type: folder
- path: LaunchScreen.storyboard
info: info:
path: api_iOS/Info.plist path: api_iOS/Info.plist
properties: properties:
@@ -64,13 +65,15 @@ targets:
ENABLE_BITCODE: false ENABLE_BITCODE: false
ARCHS: [arm64, arm64-sim] ARCHS: [arm64, arm64-sim]
VALID_ARCHS: arm64 arm64-sim VALID_ARCHS: arm64 arm64-sim
LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
EXCLUDED_ARCHS[sdk=iphonesimulator*]: arm64
EXCLUDED_ARCHS[sdk=iphoneos*]: arm64-sim x86_64
groups: [app] groups: [app]
dependencies: dependencies:
- framework: libapi.a - framework: libapp.a
embed: false embed: false
- sdk: CoreGraphics.framework - sdk: CoreGraphics.framework
- sdk: Metal.framework - sdk: Metal.framework
@@ -80,9 +83,10 @@ targets:
- sdk: UIKit.framework - sdk: UIKit.framework
- sdk: WebKit.framework - sdk: WebKit.framework
preBuildScripts: preBuildScripts:
- script: node ../../../node_modules/.bin/../@tauri-apps/cli/tauri.js ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?} - script: pnpm tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}
name: Build Rust Code name: Build Rust Code
basedOnDependencyAnalysis: false basedOnDependencyAnalysis: false
outputFiles: outputFiles:
- $(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libapi.a - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a
- $(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libapi.a - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a
- $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -37,6 +37,7 @@ pub fn run() {
.plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init()) .plugin(tauri_plugin_process::init())
.plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_store::Builder::default().build())
.setup(move |app| { .setup(move |app| {
#[cfg(desktop)] #[cfg(desktop)]
{ {
@@ -44,6 +45,8 @@ pub fn run() {
app.handle().plugin(tauri_plugin_cli::init())?; app.handle().plugin(tauri_plugin_cli::init())?;
app.handle() app.handle()
.plugin(tauri_plugin_global_shortcut::Builder::new().build())?; .plugin(tauri_plugin_global_shortcut::Builder::new().build())?;
app.handle()
.plugin(tauri_plugin_window_state::Builder::new().build())?;
app.handle() app.handle()
.plugin(tauri_plugin_updater::Builder::new().build())?; .plugin(tauri_plugin_updater::Builder::new().build())?;
} }
@@ -52,6 +55,8 @@ pub fn run() {
app.handle().plugin(tauri_plugin_barcode_scanner::init())?; app.handle().plugin(tauri_plugin_barcode_scanner::init())?;
app.handle().plugin(tauri_plugin_nfc::init())?; app.handle().plugin(tauri_plugin_nfc::init())?;
app.handle().plugin(tauri_plugin_biometric::init())?; app.handle().plugin(tauri_plugin_biometric::init())?;
app.handle().plugin(tauri_plugin_geolocation::init())?;
app.handle().plugin(tauri_plugin_haptics::init())?;
} }
let mut webview_window_builder = let mut webview_window_builder =
@@ -63,7 +68,7 @@ pub fn run() {
.title("Tauri API Validation") .title("Tauri API Validation")
.inner_size(1000., 800.) .inner_size(1000., 800.)
.min_inner_size(600., 400.) .min_inner_size(600., 400.)
.content_protected(true); .visible(false);
} }
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
+4 -1
View File
@@ -1,5 +1,5 @@
{ {
"$schema": "../node_modules/@tauri-apps/cli/schema.json", "$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "Tauri API", "productName": "Tauri API",
"version": "2.0.0", "version": "2.0.0",
"identifier": "com.tauri.api", "identifier": "com.tauri.api",
@@ -100,6 +100,9 @@
} }
} }
} }
},
"iOS": {
"minimumSystemVersion": "14.0"
} }
} }
} }
+171 -162
View File
@@ -1,197 +1,208 @@
<script> <script>
import { writable } from "svelte/store"; import { writable } from 'svelte/store'
import { open } from "@tauri-apps/plugin-shell"; import { open } from '@tauri-apps/plugin-shell'
import { getCurrentWindow } from "@tauri-apps/api/window"; import { getCurrentWindow } from '@tauri-apps/api/window'
import { getCurrentWebview } from "@tauri-apps/api/webview"; import { getCurrentWebview } from '@tauri-apps/api/webview'
import * as os from "@tauri-apps/plugin-os"; import * as os from '@tauri-apps/plugin-os'
import Welcome from "./views/Welcome.svelte"; import Welcome from './views/Welcome.svelte'
import Cli from "./views/Cli.svelte"; import Cli from './views/Cli.svelte'
import Communication from "./views/Communication.svelte"; import Communication from './views/Communication.svelte'
import Dialog from "./views/Dialog.svelte"; import Dialog from './views/Dialog.svelte'
import FileSystem from "./views/FileSystem.svelte"; import FileSystem from './views/FileSystem.svelte'
import Http from "./views/Http.svelte"; import Http from './views/Http.svelte'
import Notifications from "./views/Notifications.svelte"; import Notifications from './views/Notifications.svelte'
import Shortcuts from "./views/Shortcuts.svelte"; import Shortcuts from './views/Shortcuts.svelte'
import Shell from "./views/Shell.svelte"; import Shell from './views/Shell.svelte'
import Updater from "./views/Updater.svelte"; import Store from './views/Store.svelte'
import Clipboard from "./views/Clipboard.svelte"; import Updater from './views/Updater.svelte'
import WebRTC from "./views/WebRTC.svelte"; import Clipboard from './views/Clipboard.svelte'
import Scanner from "./views/Scanner.svelte"; import WebRTC from './views/WebRTC.svelte'
import Biometric from "./views/Biometric.svelte"; import Scanner from './views/Scanner.svelte'
import Biometric from './views/Biometric.svelte'
import Geolocation from './views/Geolocation.svelte'
import { onMount, tick } from "svelte"; import { onMount, tick } from 'svelte'
import { ask } from "@tauri-apps/plugin-dialog"; import { ask } from '@tauri-apps/plugin-dialog'
import Nfc from "./views/Nfc.svelte"; import Nfc from './views/Nfc.svelte'
const appWindow = getCurrentWindow(); const appWindow = getCurrentWindow()
if (appWindow.label !== "main") { if (appWindow.label !== 'main') {
appWindow.onCloseRequested(async (event) => { appWindow.onCloseRequested(async (event) => {
const confirmed = await confirm("Are you sure?"); const confirmed = await confirm('Are you sure?')
if (!confirmed) { if (!confirmed) {
// user did not confirm closing the window; let's prevent it // user did not confirm closing the window; let's prevent it
event.preventDefault(); event.preventDefault()
} }
}); })
} }
getCurrentWebview().onDragDropEvent((event) => { getCurrentWebview().onDragDropEvent((event) => {
onMessage(`File drop: ${JSON.stringify(event.payload)}`); onMessage(`File drop: ${JSON.stringify(event.payload)}`)
}); })
const userAgent = navigator.userAgent.toLowerCase(); const userAgent = navigator.userAgent.toLowerCase()
const isMobile = const isMobile = userAgent.includes('android') || userAgent.includes('iphone')
userAgent.includes("android") || userAgent.includes("iphone");
const views = [ const views = [
{ {
label: "Welcome", label: 'Welcome',
component: Welcome, component: Welcome,
icon: "i-ph-hand-waving", icon: 'i-ph-hand-waving'
}, },
{ {
label: "Communication", label: 'Communication',
component: Communication, component: Communication,
icon: "i-codicon-radio-tower", icon: 'i-codicon-radio-tower'
}, },
!isMobile && { !isMobile && {
label: "CLI", label: 'CLI',
component: Cli, component: Cli,
icon: "i-codicon-terminal", icon: 'i-codicon-terminal'
}, },
{ {
label: "Dialog", label: 'Dialog',
component: Dialog, component: Dialog,
icon: "i-codicon-multiple-windows", icon: 'i-codicon-multiple-windows'
}, },
{ {
label: "File system", label: 'File system',
component: FileSystem, component: FileSystem,
icon: "i-codicon-files", icon: 'i-codicon-files'
}, },
{ {
label: "HTTP", label: 'HTTP',
component: Http, component: Http,
icon: "i-ph-globe-hemisphere-west", icon: 'i-ph-globe-hemisphere-west'
}, },
{ {
label: "Notifications", label: 'Notifications',
component: Notifications, component: Notifications,
icon: "i-codicon-bell-dot", icon: 'i-codicon-bell-dot'
}, },
!isMobile && { !isMobile && {
label: "Shortcuts", label: 'Shortcuts',
component: Shortcuts, component: Shortcuts,
icon: "i-codicon-record-keys", icon: 'i-codicon-record-keys'
}, },
{ {
label: "Shell", label: 'Shell',
component: Shell, component: Shell,
icon: "i-codicon-terminal-bash", icon: 'i-codicon-terminal-bash'
},
{
label: 'Store',
component: Store,
icon: 'i-codicon-file-code'
}, },
!isMobile && { !isMobile && {
label: "Updater", label: 'Updater',
component: Updater, component: Updater,
icon: "i-codicon-cloud-download", icon: 'i-codicon-cloud-download'
}, },
{ {
label: "Clipboard", label: 'Clipboard',
component: Clipboard, component: Clipboard,
icon: "i-codicon-clippy", icon: 'i-codicon-clippy'
}, },
{ {
label: "WebRTC", label: 'WebRTC',
component: WebRTC, component: WebRTC,
icon: "i-ph-broadcast", icon: 'i-ph-broadcast'
}, },
isMobile && { isMobile && {
label: "Scanner", label: 'Scanner',
component: Scanner, component: Scanner,
icon: "i-ph-scan", icon: 'i-ph-scan'
}, },
isMobile && { isMobile && {
label: "NFC", label: 'NFC',
component: Nfc, component: Nfc,
icon: "i-ph-nfc", icon: 'i-ph-nfc'
}, },
isMobile && { isMobile && {
label: "Biometric", label: 'Biometric',
component: Biometric, component: Biometric,
icon: "i-ph-scan", icon: 'i-ph-scan'
}, },
]; isMobile && {
label: 'Geolocation',
component: Geolocation,
icon: 'i-ph-map-pin'
}
]
let selected = views[0]; let selected = views[0]
function select(view) { function select(view) {
selected = view; selected = view
} }
// Window controls // Window controls
let isWindowMaximized; let isWindowMaximized
onMount(async () => { onMount(async () => {
isWindowMaximized = await appWindow.isMaximized(); isWindowMaximized = await appWindow.isMaximized()
appWindow.onResized(async () => { appWindow.onResized(async () => {
isWindowMaximized = await appWindow.isMaximized(); isWindowMaximized = await appWindow.isMaximized()
}); })
}); })
function minimize() { function minimize() {
appWindow.minimize(); appWindow.minimize()
} }
async function toggleMaximize() { async function toggleMaximize() {
(await appWindow.isMaximized()) ;(await appWindow.isMaximized())
? appWindow.unmaximize() ? appWindow.unmaximize()
: appWindow.maximize(); : appWindow.maximize()
} }
let confirmed_close = false; let confirmed_close = false
async function close() { async function close() {
if (!confirmed_close) { if (!confirmed_close) {
confirmed_close = await ask( confirmed_close = await ask(
"Are you sure that you want to close this window?", 'Are you sure that you want to close this window?',
{ {
title: "Tauri API", title: 'Tauri API'
} }
); )
if (confirmed_close) { if (confirmed_close) {
appWindow.close(); appWindow.close()
} }
} }
} }
// dark/light // dark/light
let isDark; let isDark
onMount(() => { onMount(() => {
isDark = localStorage && localStorage.getItem("theme") == "dark"; isDark = localStorage && localStorage.getItem('theme') == 'dark'
applyTheme(isDark); applyTheme(isDark)
}); })
function applyTheme(isDark) { function applyTheme(isDark) {
const html = document.querySelector("html"); const html = document.querySelector('html')
isDark ? html.classList.add("dark") : html.classList.remove("dark"); isDark ? html.classList.add('dark') : html.classList.remove('dark')
localStorage && localStorage.setItem("theme", isDark ? "dark" : ""); localStorage && localStorage.setItem('theme', isDark ? 'dark' : '')
} }
function toggleDark() { function toggleDark() {
isDark = !isDark; isDark = !isDark
applyTheme(isDark); applyTheme(isDark)
} }
// Console // Console
let messages = writable([]); let messages = writable([])
let consoleTextEl; let consoleTextEl
async function onMessage(value) { async function onMessage(value) {
messages.update((r) => [ messages.update((r) => [
...r, ...r,
{ {
html: html:
`<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` + `<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` +
(typeof value === "string" ? value : JSON.stringify(value, null, 1)) + (typeof value === 'string' ? value : JSON.stringify(value, null, 1)) +
"</pre>", '</pre>'
}, }
]); ])
await tick(); await tick()
if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight; if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight
} }
// this function is renders HTML without sanitizing it so it's insecure // this function is renders HTML without sanitizing it so it's insecure
@@ -203,111 +214,109 @@
html: html:
`<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` + `<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` +
html + html +
"</pre>", '</pre>'
}, }
]); ])
await tick(); await tick()
if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight; if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight
} }
function clear() { function clear() {
messages.update(() => []); messages.update(() => [])
} }
let consoleEl, consoleH, cStartY; let consoleEl, consoleH, cStartY
let minConsoleHeight = 50; let minConsoleHeight = 50
function startResizingConsole(e) { function startResizingConsole(e) {
cStartY = e.clientY; cStartY = e.clientY
const styles = window.getComputedStyle(consoleEl); const styles = window.getComputedStyle(consoleEl)
consoleH = parseInt(styles.height, 10); consoleH = parseInt(styles.height, 10)
const moveHandler = (e) => { const moveHandler = (e) => {
const dy = e.clientY - cStartY; const dy = e.clientY - cStartY
const newH = consoleH - dy; const newH = consoleH - dy
consoleEl.style.height = `${ consoleEl.style.height = `${
newH < minConsoleHeight ? minConsoleHeight : newH newH < minConsoleHeight ? minConsoleHeight : newH
}px`; }px`
}; }
const upHandler = () => { const upHandler = () => {
document.removeEventListener("mouseup", upHandler); document.removeEventListener('mouseup', upHandler)
document.removeEventListener("mousemove", moveHandler); document.removeEventListener('mousemove', moveHandler)
}; }
document.addEventListener("mouseup", upHandler); document.addEventListener('mouseup', upHandler)
document.addEventListener("mousemove", moveHandler); document.addEventListener('mousemove', moveHandler)
} }
let isWindows; let isWindows
onMount(async () => { onMount(async () => {
isWindows = (await os.platform()) === "windows"; isWindows = (await os.platform()) === 'windows'
}); })
// mobile // mobile
let isSideBarOpen = false; let isSideBarOpen = false
let sidebar; let sidebar
let sidebarToggle; let sidebarToggle
let isDraggingSideBar = false; let isDraggingSideBar = false
let draggingStartPosX = 0; let draggingStartPosX = 0
let draggingEndPosX = 0; let draggingEndPosX = 0
const clamp = (min, num, max) => Math.min(Math.max(num, min), max); const clamp = (min, num, max) => Math.min(Math.max(num, min), max)
function toggleSidebar(sidebar, isSideBarOpen) { function toggleSidebar(sidebar, isSideBarOpen) {
sidebar.style.setProperty( sidebar.style.setProperty(
"--translate-x", '--translate-x',
`${isSideBarOpen ? "0" : "-18.75"}rem` `${isSideBarOpen ? '0' : '-18.75'}rem`
); )
} }
onMount(() => { onMount(() => {
sidebar = document.querySelector("#sidebar"); sidebar = document.querySelector('#sidebar')
sidebarToggle = document.querySelector("#sidebarToggle"); sidebarToggle = document.querySelector('#sidebarToggle')
document.addEventListener("click", (e) => { document.addEventListener('click', (e) => {
if (sidebarToggle.contains(e.target)) { if (sidebarToggle.contains(e.target)) {
isSideBarOpen = !isSideBarOpen; isSideBarOpen = !isSideBarOpen
} else if (isSideBarOpen && !sidebar.contains(e.target)) { } else if (isSideBarOpen && !sidebar.contains(e.target)) {
isSideBarOpen = false; isSideBarOpen = false
} }
}); })
document.addEventListener("touchstart", (e) => { document.addEventListener('touchstart', (e) => {
if (sidebarToggle.contains(e.target)) return; if (sidebarToggle.contains(e.target)) return
const x = e.touches[0].clientX; const x = e.touches[0].clientX
if ((0 < x && x < 20 && !isSideBarOpen) || isSideBarOpen) { if ((0 < x && x < 20 && !isSideBarOpen) || isSideBarOpen) {
isDraggingSideBar = true; isDraggingSideBar = true
draggingStartPosX = x; draggingStartPosX = x
} }
}); })
document.addEventListener("touchmove", (e) => { document.addEventListener('touchmove', (e) => {
if (isDraggingSideBar) { if (isDraggingSideBar) {
const x = e.touches[0].clientX; const x = e.touches[0].clientX
draggingEndPosX = x; draggingEndPosX = x
const delta = (x - draggingStartPosX) / 10; const delta = (x - draggingStartPosX) / 10
sidebar.style.setProperty( sidebar.style.setProperty(
"--translate-x", '--translate-x',
`-${clamp(0, isSideBarOpen ? 0 - delta : 18.75 - delta, 18.75)}rem` `-${clamp(0, isSideBarOpen ? 0 - delta : 18.75 - delta, 18.75)}rem`
); )
} }
}); })
document.addEventListener("touchend", () => { document.addEventListener('touchend', () => {
if (isDraggingSideBar) { if (isDraggingSideBar) {
const delta = (draggingEndPosX - draggingStartPosX) / 10; const delta = (draggingEndPosX - draggingStartPosX) / 10
isSideBarOpen = isSideBarOpen isSideBarOpen = isSideBarOpen ? delta > -(18.75 / 2) : delta > 18.75 / 2
? delta > -(18.75 / 2)
: delta > 18.75 / 2;
} }
isDraggingSideBar = false; isDraggingSideBar = false
}); })
}); })
$: { $: {
const sidebar = document.querySelector("#sidebar"); const sidebar = document.querySelector('#sidebar')
if (sidebar) { if (sidebar) {
toggleSidebar(sidebar, isSideBarOpen); toggleSidebar(sidebar, isSideBarOpen)
} }
} }
</script> </script>
@@ -326,7 +335,7 @@
children:items-center children:justify-center" children:items-center children:justify-center"
> >
<span <span
title={isDark ? "Switch to Light mode" : "Switch to Dark mode"} title={isDark ? 'Switch to Light mode' : 'Switch to Dark mode'}
class="hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker" class="hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker"
on:click={toggleDark} on:click={toggleDark}
> >
@@ -344,7 +353,7 @@
<div class="i-codicon-chrome-minimize" /> <div class="i-codicon-chrome-minimize" />
</span> </span>
<span <span
title={isWindowMaximized ? "Restore" : "Maximize"} title={isWindowMaximized ? 'Restore' : 'Maximize'}
class="hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker" class="hover:bg-hoverOverlay active:bg-hoverOverlayDarker dark:hover:bg-darkHoverOverlay dark:active:bg-darkHoverOverlayDarker"
on:click={toggleMaximize} on:click={toggleMaximize}
> >
@@ -387,7 +396,7 @@
bg-darkPrimaryLighter transition-colors-250 overflow-hidden grid select-none px-2" bg-darkPrimaryLighter transition-colors-250 overflow-hidden grid select-none px-2"
> >
<img <img
on:click={() => open("https://tauri.app/")} on:click={() => open('https://tauri.app/')}
class="self-center p-7 cursor-pointer" class="self-center p-7 cursor-pointer"
src="tauri_logo.png" src="tauri_logo.png"
alt="Tauri logo" alt="Tauri logo"
@@ -443,8 +452,8 @@
href="##" href="##"
class="nv {selected === view ? 'nv_selected' : ''}" class="nv {selected === view ? 'nv_selected' : ''}"
on:click={() => { on:click={() => {
select(view); select(view)
isSideBarOpen = false; isSideBarOpen = false
}} }}
> >
<div class="{view.icon} mr-2" /> <div class="{view.icon} mr-2" />
+1 -1
View File
@@ -5,7 +5,7 @@
* { * {
box-sizing: border-box; box-sizing: border-box;
font-family: "Rubik", sans-serif; font-family: 'Rubik', sans-serif;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
+7 -7
View File
@@ -4,12 +4,12 @@
export function arrayBufferToBase64(buffer, callback) { export function arrayBufferToBase64(buffer, callback) {
const blob = new Blob([buffer], { const blob = new Blob([buffer], {
type: "application/octet-binary", type: 'application/octet-binary'
}); })
const reader = new FileReader(); const reader = new FileReader()
reader.onload = function (evt) { reader.onload = function (evt) {
const dataurl = evt.target.result; const dataurl = evt.target.result
callback(dataurl.substr(dataurl.indexOf(",") + 1)); callback(dataurl.substr(dataurl.indexOf(',') + 1))
}; }
reader.readAsDataURL(blob); reader.readAsDataURL(blob)
} }
+6 -6
View File
@@ -2,12 +2,12 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import "uno.css"; import 'uno.css'
import "./app.css"; import './app.css'
import App from "./App.svelte"; import App from './App.svelte'
const app = new App({ const app = new App({
target: document.querySelector("#app"), target: document.querySelector('#app')
}); })
export default app; export default app
+28 -29
View File
@@ -1,59 +1,59 @@
<script> <script>
import * as clipboard from "@tauri-apps/plugin-clipboard-manager"; import * as clipboard from '@tauri-apps/plugin-clipboard-manager'
import { open } from "@tauri-apps/plugin-dialog"; import { open } from '@tauri-apps/plugin-dialog'
import { arrayBufferToBase64 } from "../lib/utils"; import { arrayBufferToBase64 } from '../lib/utils'
import { readFile } from "@tauri-apps/plugin-fs"; import { readFile } from '@tauri-apps/plugin-fs'
export let onMessage; export let onMessage
export let insecureRenderHtml; export let insecureRenderHtml
let text = "clipboard message"; let text = 'clipboard message'
function writeText() { function writeText() {
clipboard clipboard
.writeText(text) .writeText(text)
.then(() => { .then(() => {
onMessage("Wrote to the clipboard"); onMessage('Wrote to the clipboard')
}) })
.catch(onMessage); .catch(onMessage)
} }
async function writeImage() { async function writeImage() {
try { try {
const res = await open({ const path = await open({
title: "Image to write to clipboard", title: 'Image to write to clipboard',
filters: [ filters: [
{ {
name: "Clipboard IMG", name: 'Clipboard IMG',
extensions: ["png", "jpg", "jpeg"], extensions: ['png', 'jpg', 'jpeg']
}, }
], ]
}); })
const bytes = await readFile(res.path); const bytes = await readFile(path)
await clipboard.writeImage(bytes); await clipboard.writeImage(bytes)
onMessage("wrote image"); onMessage('wrote image')
} catch (e) { } catch (e) {
onMessage(e); onMessage(e)
} }
} }
async function read() { async function read() {
try { try {
const image = await clipboard.readImage(); const image = await clipboard.readImage()
arrayBufferToBase64(await image.rgba(), function (base64) { arrayBufferToBase64(await image.rgba(), function (base64) {
const src = "data:image/png;base64," + base64; const src = 'data:image/png;base64,' + base64
insecureRenderHtml('<img src="' + src + '"></img>'); insecureRenderHtml('<img src="' + src + '"></img>')
}); })
return; return
} catch (_) {} } catch (_) {}
clipboard clipboard
.readText() .readText()
.then((contents) => { .then((contents) => {
onMessage(`Clipboard contents: ${contents}`); onMessage(`Clipboard contents: ${contents}`)
}) })
.catch((e) => { .catch((e) => {
onMessage(e); onMessage(e)
}); })
} }
</script> </script>
@@ -65,6 +65,5 @@
/> />
<button class="btn" type="button" on:click={writeText}>Write</button> <button class="btn" type="button" on:click={writeText}>Write</button>
<button class="btn" type="button" on:click={writeImage}>Pick Image</button> <button class="btn" type="button" on:click={writeImage}>Pick Image</button>
<button class="btn" type="button" on:click={read}>Read</button> <button class="btn" type="button" on:click={read}>Read</button>
</div> </div>
+7 -8
View File
@@ -23,11 +23,7 @@
async function prompt() { async function prompt() {
confirm("Do you want to do something?") confirm("Do you want to do something?")
.then((res) => .then((res) => onMessage(res ? "Yes" : "No"))
onMessage(
res ? "Yes" : "No"
)
)
.catch(onMessage); .catch(onMessage);
} }
@@ -67,14 +63,15 @@
if (Array.isArray(res)) { if (Array.isArray(res)) {
onMessage(res); onMessage(res);
} else { } else {
var pathToRead = typeof res === "string" ? res : res.path; var pathToRead = res;
var isFile = pathToRead.match(/\S+\.\S+$/g); var isFile = pathToRead.match(/\S+\.\S+$/g);
readFile(pathToRead) readFile(pathToRead)
.then(function (response) { .then(function (response) {
if (isFile) { if (isFile) {
if ( if (
pathToRead.includes(".png") || pathToRead.includes(".png") ||
pathToRead.includes(".jpg") pathToRead.includes(".jpg") ||
pathToRead.includes(".jpeg")
) { ) {
arrayBufferToBase64( arrayBufferToBase64(
new Uint8Array(response), new Uint8Array(response),
@@ -144,5 +141,7 @@
>Open save dialog</button >Open save dialog</button
> >
<button class="btn" id="prompt-dialog" on:click={prompt}>Prompt</button> <button class="btn" id="prompt-dialog" on:click={prompt}>Prompt</button>
<button class="btn" id="custom-prompt-dialog" on:click={promptCustom}>Prompt (custom)</button> <button class="btn" id="custom-prompt-dialog" on:click={promptCustom}
>Prompt (custom)</button
>
<button class="btn" id="message-dialog" on:click={msg}>Message</button> <button class="btn" id="message-dialog" on:click={msg}>Message</button>
+29
View File
@@ -0,0 +1,29 @@
<script>
import {
checkPermissions,
requestPermissions,
getCurrentPosition
} from '@tauri-apps/plugin-geolocation'
export let onMessage
async function getPosition() {
let permissions = await checkPermissions()
if (
permissions.location === 'prompt' ||
permissions.location === 'prompt-with-rationale'
) {
permissions = await requestPermissions(['location'])
}
if (permissions.location === 'granted') {
getCurrentPosition().then(onMessage).catch(onMessage)
} else {
onMessage('permission denied')
}
}
</script>
<button class="btn" id="cli-matches" on:click={getPosition}>
Get Position
</button>
+1 -1
View File
@@ -59,7 +59,7 @@
} }
function writeToStdin() { function writeToStdin() {
child.write(stdin).catch(onMessage); child.write(`${stdin}\n`).catch(onMessage);
} }
</script> </script>
+97
View File
@@ -0,0 +1,97 @@
<script>
import { LazyStore } from "@tauri-apps/plugin-store";
import { onMount } from "svelte";
export let onMessage;
let key;
let value;
let store = new LazyStore("cache.json");
let cache = {};
async function refreshEntries() {
try {
const values = await store.entries();
cache = {};
for (const [key, value] of values) {
cache[key] = value;
}
} catch (error) {
onMessage(error);
}
}
onMount(async () => {
await refreshEntries();
});
async function write(key, value) {
try {
if (value) {
await store.set(key, value);
} else {
await store.delete(key);
}
const v = await store.get(key);
if (v === undefined) {
delete cache[key];
cache = cache;
} else {
cache[key] = v;
}
} catch (error) {
onMessage(error);
}
}
async function reset() {
try {
await store.reset();
} catch (error) {
onMessage(error);
}
await refreshEntries();
}
async function close() {
try {
await store.close();
onMessage("Store is now closed, any new operations will error out");
} catch (error) {
onMessage(error);
}
}
function reopen() {
store = new LazyStore("cache.json");
onMessage("We made a new `LazyStore` instance, operations will now work");
}
</script>
<div class="flex flex-col childre:grow gap-1">
<div class="flex flex-col flex-row-md gap-4">
<div class="flex items-center gap-1">
Key:
<input class="grow input" bind:value={key} />
</div>
<div class="flex items-center gap-1">
Value:
<input class="grow input" bind:value />
</div>
<div>
<button class="btn" on:click={() => write(key, value)}>Write</button>
<button class="btn" on:click={() => reset()}>Reset</button>
<button class="btn" on:click={() => close()}>Close</button>
<button class="btn" on:click={() => reopen()}>Re-open</button>
</div>
</div>
<div>
{#each Object.entries(cache) as [k, v]}
<div>{k} = {v}</div>
{/each}
</div>
</div>
+45 -45
View File
@@ -2,43 +2,43 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import { defineConfig, presetIcons, presetUno, presetWebFonts } from "unocss"; import { defineConfig, presetIcons, presetUno, presetWebFonts } from 'unocss'
import extractorSvelte from "@unocss/extractor-svelte"; import extractorSvelte from '@unocss/extractor-svelte'
export default defineConfig({ export default defineConfig({
theme: { theme: {
colors: { colors: {
primary: "#FFFFFF", primary: '#FFFFFF',
primaryLighter: "#e9ecef", primaryLighter: '#e9ecef',
darkPrimary: "#1B1B1D", darkPrimary: '#1B1B1D',
darkPrimaryLighter: "#242526", darkPrimaryLighter: '#242526',
primaryText: "#1C1E21", primaryText: '#1C1E21',
darkPrimaryText: "#E3E3E3", darkPrimaryText: '#E3E3E3',
secondaryText: "#858A91", secondaryText: '#858A91',
darkSecondaryText: "#C2C5CA", darkSecondaryText: '#C2C5CA',
accent: "#3578E5", accent: '#3578E5',
accentDark: "#306cce", accentDark: '#306cce',
accentDarker: "#2d66c3", accentDarker: '#2d66c3',
accentDarkest: "#2554a0", accentDarkest: '#2554a0',
accentLight: "#538ce9", accentLight: '#538ce9',
accentLighter: "#72a1ed", accentLighter: '#72a1ed',
accentLightest: "#9abcf2", accentLightest: '#9abcf2',
accentText: "#FFFFFF", accentText: '#FFFFFF',
darkAccent: "#67d6ed", darkAccent: '#67d6ed',
darkAccentDark: "#49cee9", darkAccentDark: '#49cee9',
darkAccentDarker: "#39cae8", darkAccentDarker: '#39cae8',
darkAccentDarkest: "#19b5d5", darkAccentDarkest: '#19b5d5',
darkAccentLight: "#85def1", darkAccentLight: '#85def1',
darkAccentLighter: "#95e2f2", darkAccentLighter: '#95e2f2',
darkAccentLightest: "#c2eff8", darkAccentLightest: '#c2eff8',
darkAccentText: "#1C1E21", darkAccentText: '#1C1E21',
code: "#d6d8da", code: '#d6d8da',
codeDark: "#282a2e", codeDark: '#282a2e',
hoverOverlay: "rgba(0,0,0,.05)", hoverOverlay: 'rgba(0,0,0,.05)',
hoverOverlayDarker: "rgba(0,0,0,.1)", hoverOverlayDarker: 'rgba(0,0,0,.1)',
darkHoverOverlay: "hsla(0,0%,100%,.05)", darkHoverOverlay: 'hsla(0,0%,100%,.05)',
darkHoverOverlayDarker: "hsla(0,0%,100%,.1)", darkHoverOverlayDarker: 'hsla(0,0%,100%,.1)'
}, }
}, },
preflights: [ preflights: [
{ {
@@ -54,7 +54,7 @@ export default defineConfig({
code { code {
font-size: ${theme.fontSize.xs[0]}; font-size: ${theme.fontSize.xs[0]};
font-family: ${theme.fontFamily.mono}; font-family: ${theme.fontFamily.mono};
border-radius: ${theme.borderRadius["DEFAULT"]}; border-radius: ${theme.borderRadius['DEFAULT']};
background-color: ${theme.colors.code}; background-color: ${theme.colors.code};
} }
@@ -66,8 +66,8 @@ export default defineConfig({
.dark code { .dark code {
background-color: ${theme.colors.codeDark}; background-color: ${theme.colors.codeDark};
} }
`, `
}, }
], ],
shortcuts: { shortcuts: {
btn: `select-none outline-none shadow-md p-2 rd-1 text-primaryText border-none font-400 dark:font-600 btn: `select-none outline-none shadow-md p-2 rd-1 text-primaryText border-none font-400 dark:font-600
@@ -81,20 +81,20 @@ export default defineConfig({
note: `decoration-none flex-inline items-center relative p-2 rd-1 note: `decoration-none flex-inline items-center relative p-2 rd-1
border-l-4 border-accent dark:border-darkAccent border-l-4 border-accent dark:border-darkAccent
bg-accent/10 dark:bg-darkAccent/10`, bg-accent/10 dark:bg-darkAccent/10`,
"note-red": 'note-red':
"note bg-red-700/10 dark:bg-red-700/10 after:bg-red-700 dark:after:bg-red-700", 'note bg-red-700/10 dark:bg-red-700/10 after:bg-red-700 dark:after:bg-red-700',
input: input:
"h-10 flex items-center outline-none border-none p-2 rd-1 shadow-md bg-primaryLighter dark:bg-darkPrimaryLighter text-primaryText dark:text-darkPrimaryText", 'h-10 flex items-center outline-none border-none p-2 rd-1 shadow-md bg-primaryLighter dark:bg-darkPrimaryLighter text-primaryText dark:text-darkPrimaryText'
}, },
presets: [ presets: [
presetUno(), presetUno(),
presetIcons(), presetIcons(),
presetWebFonts({ presetWebFonts({
fonts: { fonts: {
sans: "Rubik", sans: 'Rubik',
mono: ["Fira Code", "Fira Mono:400,700"], mono: ['Fira Code', 'Fira Mono:400,700']
}, }
}), })
], ],
extractors: [extractorSvelte], extractors: [extractorSvelte]
}); })
+15 -24
View File
@@ -2,19 +2,15 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import { defineConfig } from "vite"; import { defineConfig } from 'vite'
import Unocss from "unocss/vite"; import Unocss from 'unocss/vite'
import { svelte } from "@sveltejs/vite-plugin-svelte"; import { svelte } from '@sveltejs/vite-plugin-svelte'
import { internalIpV4 } from "internal-ip"; import process from 'process'
import process from "process";
const host = process.env.TAURI_DEV_HOST
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig(async () => { export default defineConfig(async () => {
const host =
process.env.TAURI_ENV_PLATFORM === "android" ||
process.env.TAURI_ENV_PLATFORM === "ios"
? await internalIpV4()
: "localhost";
return { return {
plugins: [Unocss(), svelte()], plugins: [Unocss(), svelte()],
build: { build: {
@@ -22,22 +18,17 @@ export default defineConfig(async () => {
output: { output: {
entryFileNames: `assets/[name].js`, entryFileNames: `assets/[name].js`,
chunkFileNames: `assets/[name].js`, chunkFileNames: `assets/[name].js`,
assetFileNames: `assets/[name].[ext]`, assetFileNames: `assets/[name].[ext]`
}, }
}, }
}, },
server: { server: {
host: "0.0.0.0", host: host || false,
port: 5173, port: 5173,
strictPort: true, strictPort: true,
hmr: {
protocol: "ws",
host,
port: 5183,
},
fs: { fs: {
allow: [".", "../../tooling/api/dist"], allow: ['.', '../../tooling/api/dist']
}, }
}, }
}; }
}); })
+11 -11
View File
@@ -1,29 +1,29 @@
{ {
"name": "plugins-workspace", "name": "plugins-workspace",
"private": true, "private": true,
"license": "MIT or APACHE-2.0", "license": "MIT OR Apache-2.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "pnpm run -r --parallel --filter !plugins-workspace --filter !\"./plugins/*/examples/**\" --filter !\"./examples/*\" build", "build": "pnpm run -r --parallel --filter !plugins-workspace --filter !\"./plugins/*/examples/**\" --filter !\"./examples/*\" build",
"lint": "eslint .", "lint": "eslint .",
"format": "prettier --write \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore", "format": "prettier --write .",
"format-check": "prettier --check \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore" "format:check": "prettier --check ."
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "9.8.0", "@eslint/js": "9.13.0",
"@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-node-resolve": "15.3.0",
"@rollup/plugin-terser": "0.4.4", "@rollup/plugin-terser": "0.4.4",
"@rollup/plugin-typescript": "11.1.6", "@rollup/plugin-typescript": "11.1.6",
"@types/eslint__js": "8.42.3", "@types/eslint__js": "8.42.3",
"covector": "^0.12.0", "covector": "^0.12.3",
"eslint": "9.8.0", "eslint": "9.13.0",
"eslint-config-prettier": "9.1.0", "eslint-config-prettier": "9.1.0",
"eslint-plugin-security": "3.0.1", "eslint-plugin-security": "3.0.1",
"prettier": "3.3.3", "prettier": "3.3.3",
"rollup": "4.19.2", "rollup": "4.22.4",
"tslib": "2.6.3", "tslib": "2.7.0",
"typescript": "5.5.4", "typescript": "5.6.3",
"typescript-eslint": "8.0.0" "typescript-eslint": "8.10.0"
}, },
"resolutions": { "resolutions": {
"semver": ">=7.5.2", "semver": ">=7.5.2",
-1
View File
@@ -1 +0,0 @@
node_modules
-88
View File
@@ -1,88 +0,0 @@
# Changelog
## \[2.0.0-rc.0]
- [`9887d1`](https://github.com/tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC.
## \[2.0.0-beta.8]
- [`99d6ac0f`](https://github.com/tauri-apps/plugins-workspace/commit/99d6ac0f9506a6a4a1aa59c728157190a7441af6) ([#1606](https://github.com/tauri-apps/plugins-workspace/pull/1606) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) The JS packages now specify the *minimum* `@tauri-apps/api` version instead of a single exact version.
- [`6de87966`](https://github.com/tauri-apps/plugins-workspace/commit/6de87966ecc00ad9d91c25be452f1f46bd2b7e1f) ([#1597](https://github.com/tauri-apps/plugins-workspace/pull/1597) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Update to tauri beta.25.
## \[2.0.0-beta.7]
- [`22a17980`](https://github.com/tauri-apps/plugins-workspace/commit/22a17980ff4f6f8c40adb1b8f4ffc6dae2fe7e30) ([#1537](https://github.com/tauri-apps/plugins-workspace/pull/1537) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri beta.24.
## \[2.0.0-beta.6]
- [`76daee7a`](https://github.com/tauri-apps/plugins-workspace/commit/76daee7aafece34de3092c86e531cf9eb1138989) ([#1512](https://github.com/tauri-apps/plugins-workspace/pull/1512) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Update to tauri beta.23.
## \[2.0.0-beta.5]
- [`9013854f`](https://github.com/tauri-apps/plugins-workspace/commit/9013854f42a49a230b9dbb9d02774765528a923f)([#1382](https://github.com/tauri-apps/plugins-workspace/pull/1382)) Update to tauri beta.22.
## \[2.0.0-beta.4]
- [`430bd6f4`](https://github.com/tauri-apps/plugins-workspace/commit/430bd6f4f379bee5d232ae6b098ae131db7f178a)([#1363](https://github.com/tauri-apps/plugins-workspace/pull/1363)) Update to tauri beta.20.
## \[2.0.0-beta.3]
- [`bd1ed590`](https://github.com/tauri-apps/plugins-workspace/commit/bd1ed5903ffcce5500310dac1e59e8c67674ef1e)([#1237](https://github.com/tauri-apps/plugins-workspace/pull/1237)) Update to tauri beta.17.
## \[2.0.0-beta.4]
- [`7e2fcc5`](https://github.com/tauri-apps/plugins-workspace/commit/7e2fcc5e74df7c3c718e40f75bfb0eafc7d69d8d)([#1146](https://github.com/tauri-apps/plugins-workspace/pull/1146)) Update dependencies to align with tauri 2.0.0-beta.14.
## \[2.0.0-beta.3]
- [`a04ea2f`](https://github.com/tauri-apps/plugins-workspace/commit/a04ea2f38294d5a3987578283badc8eec87a7752)([#1071](https://github.com/tauri-apps/plugins-workspace/pull/1071)) The global API script is now only added to the binary when the `withGlobalTauri` config is true.
## \[2.0.0-beta.2]
- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8.
## \[2.0.0-beta.1]
- [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4.
## \[2.0.0-beta.0]
- [`d198c01`](https://github.com/tauri-apps/plugins-workspace/commit/d198c014863ee260cb0de88a14b7fc4356ef7474)([#862](https://github.com/tauri-apps/plugins-workspace/pull/862)) Update to tauri beta.
## \[2.0.0-alpha.5]
- [`387c2f9`](https://github.com/tauri-apps/plugins-workspace/commit/387c2f9e0ce4c75c07ffa3fd76391a25b58f5daf)([#802](https://github.com/tauri-apps/plugins-workspace/pull/802)) Update to @tauri-apps/api v2.0.0-alpha.13.
## \[2.0.0-alpha.4]
- [`387c2f9`](https://github.com/tauri-apps/plugins-workspace/commit/387c2f9e0ce4c75c07ffa3fd76391a25b58f5daf)([#802](https://github.com/tauri-apps/plugins-workspace/pull/802)) Update to @tauri-apps/api v2.0.0-alpha.12.
## \[2.0.0-alpha.3]
- [`e438e0a`](https://github.com/tauri-apps/plugins-workspace/commit/e438e0a62d4b430a5159f05f13ecd397dd891a0d)([#676](https://github.com/tauri-apps/plugins-workspace/pull/676)) Update to @tauri-apps/api v2.0.0-alpha.11.
## \[2.0.0-alpha.2]
- [`5c13736`](https://github.com/tauri-apps/plugins-workspace/commit/5c137365c60790e8d4037d449e8237aa3fffdab0)([#673](https://github.com/tauri-apps/plugins-workspace/pull/673)) Update to @tauri-apps/api v2.0.0-alpha.9.
## \[2.0.0-alpha.2]
- [`4e2cef9`](https://github.com/tauri-apps/plugins-workspace/commit/4e2cef9b702bbbb9cf4ee17de50791cb21f1b2a4)([#593](https://github.com/tauri-apps/plugins-workspace/pull/593)) Update to alpha.12.
## \[2.0.0-alpha.1]
- [`d74fc0a`](https://github.com/tauri-apps/plugins-workspace/commit/d74fc0a097996e90a37be8f57d50b7d1f6ca616f)([#555](https://github.com/tauri-apps/plugins-workspace/pull/555)) Update to alpha.11.
## \[2.0.0-alpha.0]
- [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
te to alpha.11.
## \[2.0.0-alpha.0]
- [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
\-workspace/pull/371)) First v2 alpha release!
717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release!
-41
View File
@@ -1,41 +0,0 @@
[package]
name = "tauri-plugin-authenticator"
version = "2.0.0-rc.0"
description = "Use hardware security-keys in your Tauri App."
authors = { workspace = true }
license = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
repository = { workspace = true }
links = "tauri-plugin-authenticator"
[package.metadata.docs.rs]
rustc-args = [ "--cfg", "docsrs" ]
rustdoc-args = [ "--cfg", "docsrs" ]
[build-dependencies]
tauri-plugin = { workspace = true, features = [ "build" ] }
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
tauri = { workspace = true }
log = { workspace = true }
thiserror = { workspace = true }
[target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies]
authenticator = "0.3.1"
once_cell = "1"
sha2 = "0.10"
base64 = "0.22"
chrono = "0.4"
bytes = "1"
byteorder = "1"
openssl = "0.10"
[target."cfg(target_os = \"windows\")".dependencies]
winapi-util = "=0.1.6"
[dev-dependencies]
rand = "0.8"
rusty-fork = "0.3"
-20
View File
@@ -1,20 +0,0 @@
SPDXVersion: SPDX-2.1
DataLicense: CC0-1.0
PackageName: tauri
DataFormat: SPDXRef-1
PackageSupplier: Organization: The Tauri Programme in the Commons Conservancy
PackageHomePage: https://tauri.app
PackageLicenseDeclared: Apache-2.0
PackageLicenseDeclared: MIT
PackageCopyrightText: 2019-2022, The Tauri Programme in the Commons Conservancy
PackageSummary: <text>Tauri is a rust project that enables developers to make secure
and small desktop applications using a web frontend.
</text>
PackageComment: <text>The package includes the following libraries; see
Relationship information.
</text>
Created: 2019-05-20T09:00:00Z
PackageDownloadLocation: git://github.com/tauri-apps/tauri
PackageDownloadLocation: git+https://github.com/tauri-apps/tauri.git
PackageDownloadLocation: git+ssh://github.com/tauri-apps/tauri.git
Creator: Person: Daniel Thompson-Yvetot
-177
View File
@@ -1,177 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2017 - Present Tauri Apps Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

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