Compare commits

...

355 Commits

Author SHA1 Message Date
Lucas Fernandes Nogueira 7c6d9fd956 Merge pull request #948 from tauri-apps/release-v2
Publish New Versions (v2)
2024-02-21 14:42:46 -03:00
lucasfernog e0d415e405 publish new versions 2024-02-21 14:40:33 -03:00
Lucas Nogueira 5ca9a80f45 chore: fix covector 2024-02-21 14:38:22 -03:00
Lucas Fernandes Nogueira b1b9a02f9e Merge pull request #971 from tauri-apps/chore/tauri-beta-3
chore: update to tauri beta.4
2024-02-21 14:32:22 -03:00
Lucas Nogueira ac8251774a remove dbus 2024-02-21 13:59:43 -03:00
Lucas Nogueira 7039c9b995 fmt, clippy 2024-02-21 13:39:40 -03:00
Lucas Nogueira 14f381acf8 bump msrv 2024-02-21 13:34:10 -03:00
Lucas Nogueira e414579b31 fmt, fix check 2024-02-21 13:32:37 -03:00
Lucas Nogueira 569defbe94 updates 2024-02-21 13:29:09 -03:00
Lucas Fernandes Nogueira 31e72f9a41 Merge pull request #968 from tauri-apps/feat/new-method
feat(sql,store): add `Builder::new`
2024-02-21 10:23:22 -03:00
ppbl 3f81555fbf fix(http): response with status code 204 (#960)
* Fix response construction with status code 204

* run pnpm build
2024-02-21 04:20:46 +02:00
Lucas Nogueira 4709c343bc inline notify-rust [skip ci] 2024-02-20 10:44:52 -03:00
Lucas Nogueira df3fc7c251 Merge branch 'chore/tauri-beta-3' of github.com:tauri-apps/plugins-workspace into chore/tauri-beta-3 2024-02-19 17:38:06 -03:00
Lucas Nogueira a31ef8e67e rfd disable default features [skip ci] 2024-02-19 17:37:21 -03:00
Lucas Nogueira af6ebc8399 fmt 2024-02-19 17:17:22 -03:00
Lucas Nogueira dbc0c0757e dist 2024-02-19 17:16:06 -03:00
Lucas Nogueira 193624b73a lockfile 2024-02-19 17:15:37 -03:00
Lucas Nogueira 9dd1d09797 rebuild 2024-02-19 17:15:24 -03:00
Lucas Nogueira 78abd7bdfb comma 2024-02-19 17:14:11 -03:00
Lucas Nogueira d98fa3e9fa rfd 0.14 2024-02-19 17:13:19 -03:00
Lucas Nogueira c4fda036cc delete files 2024-02-19 17:11:42 -03:00
Lucas Nogueira 8461cf1d1b chore: update to tauri beta.3 2024-02-19 17:10:49 -03:00
Amr Bashir 8645a02aee docs(global-shortcut): add registering example 2024-02-19 17:13:31 +02:00
Amr Bashir 7cefa2b0bd pub 2024-02-19 16:03:32 +02:00
Amr Bashir fe4fb7dc7a Update plugin.rs 2024-02-19 16:03:20 +02:00
amrbashir 72db444401 feat(sql,store): add Builder::new
ref: https://github.com/tauri-apps/tauri/issues/8880
2024-02-19 15:54:56 +02:00
amrbashir 696af68c9b docs(global-shortcut): update examples in README.md closes #965 2024-02-19 15:44:38 +02:00
Tony 51ba4c5330 fix(fs): make rename third parameter optional (#962)
* Fix rename option can't be empty

* change file
2024-02-19 14:48:22 +02:00
Tony 9b49f0abf7 docs(fs): dir -> baseDir (#961) 2024-02-19 14:37:06 +02:00
Fabian-Lars e28115cb42 ci: Use latest stable toolchain to install cross (#959) 2024-02-16 17:41:58 +01:00
Amr Bashir e856adc72c fix(shell): export open module (#939)
closes #934
2024-02-16 16:27:19 +01:00
i-c-b 2f0e30852a feat(core): recursive fs scope on directory file-drop event (#954)
* allow recursive fs scope on directory file-drop events

* Create allow-recursive-fs-scope-on-file-drop-directory.md

* Update .changes/allow-recursive-fs-scope-on-file-drop-directory.md
2024-02-15 16:55:51 +02:00
Amr Bashir 531123cad0 fix(fs/wtacher): fix incorrect type for rename events (#947) 2024-02-14 15:29:27 +02:00
Kunjan Dalal 343b1f55af chore: ReadMe updated with all plugins details (#951)
* ReadMe updated with all plugins details

* Update README.md

---------

Co-authored-by: Kunjan Dalal <kunjee@pop-os.localdomain>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-02-14 12:04:40 +01:00
amrbashir 53c0e89860 docs(global-shortcut): fix cargo name
closes #946
2024-02-14 01:12:37 +02:00
Tony 2e7ef46d8b refactor!(dialog): change type field in JS to kind (#945)
* Fix dialog type not working

* gen files

* type -> kind

* update API example

---------

Co-authored-by: amrbashir <amr.bashir2015@gmail.com>
2024-02-14 01:05:54 +02:00
Lucas Nogueira dac8b6331c fix(ci): commig schemas 2024-02-03 18:46:36 -03:00
Lucas Fernandes Nogueira 8502b90287 Merge pull request #859 from tauri-apps/release-v2
Publish New Versions (v2)
2024-02-03 18:28:39 -03:00
Lucas Nogueira fe10ab488f beta.1 2024-02-03 18:16:49 -03:00
Lucas Nogueira 7659b9515d merge from v2 2024-02-03 17:05:27 -03:00
Lucas Fernandes Nogueira 5673a416a8 Merge pull request #927 from tauri-apps/v1v2
chore: merge v1 into v2 for the last time
2024-02-03 16:58:35 -03:00
FabianLars ee910bfcce come on, that felt personal 2024-02-03 20:29:33 +01:00
FabianLars 331a3eaf06 unlucky typo lol 2024-02-03 20:28:12 +01:00
FabianLars cb5ff764a6 license 2024-02-03 20:26:49 +01:00
FabianLars 0688416425 lint 2024-02-03 20:23:09 +01:00
FabianLars 14f5961569 chore: merge v1 into v2 for the last time 2024-02-03 20:16:36 +01:00
Lucas Nogueira 63afaf1dfa fmt 2024-02-03 15:46:18 -03:00
Lucas Nogueira abd0176cc1 beta 2024-02-03 15:46:15 -03:00
lucasfernog 18e478aba0 publish new versions 2024-02-03 15:46:07 -03:00
Lucas Nogueira 2643a4c331 fix(ci): revert pre.json changes 2024-02-03 15:24:43 -03:00
Tillmann d198c01486 feat: update to tauri beta, add permissions (#862)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
2024-02-03 15:14:41 -03:00
Amr Bashir 506ce4835b refactor(updater): accomodate to new tauri config restructure (#924)
* refactor(updater): accomodate to new tauri config restructure

RFC#5 https://github.com/tauri-apps/rfcs/blob/f3e82a6b0c5390401e855850d47dc7b7d9afd684/texts/0005-tauri-config-restructure.md

RFC#5 PR implementation: https://github.com/tauri-apps/tauri/pull/8723

* lint and update configs
2024-02-03 09:14:39 -03:00
Lucas Fernandes Nogueira 15dc7060e8 fix(shell): deadlock on read line error (#923) 2024-02-01 00:01:23 -03:00
Shubham Parihar 18cb861b52 type: add OpenDialogReturn generic type (#919)
* type: add OpenDialogReturn generic type

* chore: run pnpm format

* type: export OpenDialogReturn type

* chore: run pnpm format
2024-01-30 02:08:46 +02:00
Lucas Fernandes Nogueira 8dea78ac7d fix(notification): scheduled notifications not working (#909)
* fix(notification): scheduled notifications not working

* do not use toJSON since it doesnt work on isolation pattern

* fmt
2024-01-24 13:02:11 -03:00
Daniel Faust 61edbbec0a feat(fs/watch): migrate to notify-debouncer-full (#885)
* Add support for notify-debouncer-full

* Add fs watch to demo

* Remove notify-debouncer-mini

* Rename RawEvent to WatchEvent

* Add full type definition for EventKind

* Remove `track file ids` option from fs watcher

* Update plugins/fs/guest-js/index.ts
2024-01-18 20:35:49 +02:00
Amr Bashir 0879a87a7e refactor(updater): migrate to tauri's new resource table (#899)
* refactor(updater): migrate to tauri's new resource table

* fmt

* fmt

* Create updater-js-started-event.md
2024-01-18 12:48:44 +01:00
Amr Bashir 8505a756b5 chore: add change file for updater proxy change (#907) 2024-01-17 17:51:20 +02:00
Zhang San 4e2e77580c feat(updater) support proxy (#891)
* add proxy support

Signed-off-by: San Zhang <sanzhang@mail.com>

* 1. change string to url for proxy type
2. add proxy option in js api

Signed-off-by: San Zhang <sanzhang@mail.com>

* fix fmt issue

Signed-off-by: San Zhang <sanzhang@mail.com>

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

---------

Signed-off-by: San Zhang <sanzhang@mail.com>
2024-01-17 16:47:26 +02:00
Anton Piliugin 8a3db790b8 fix(updater): fix readme and types (#903)
* Types fix

* generate files
2024-01-17 01:45:22 +02:00
Olivier Lemasle bf5a21d5b2 fix(dialog): On Android, do not add a Cancel button to message dialogs (#873) 2024-01-11 04:30:32 +02:00
阿良仔 1b1d795b58 fix(notification): export the missing Schedule class (#874)
* fix: export the missing `Schedule` class

* remove `ScheduleData`
2024-01-03 13:34:15 +01:00
Amr Bashir ae0cb92438 refactor(http): migrate to tauri's new resource table (#834)
* refactor(http): migrate to tauri's new resource table

* fmt

* change file
2024-01-02 21:55:57 +02:00
阿良仔 ea8eadce85 fix(fs): match default value of create option with js documentation (#865)
* fix(fs): inconsistency in guest-js & rust side

* Update .changes/fix-fs-write-default-option.md
2024-01-02 20:44:09 +02:00
lopo be5aebdec9 docs(log): update readme code example for v2 (#869) 2024-01-01 12:24:41 +01:00
Matthias Lohscheidt b9d29a0154 docs(sql): Add migrations section to README (#867)
Add section about migration management.
2023-12-31 16:42:22 +01:00
hygkui 1a347203a5 fix: fix http plugin fetch init with connectTimeout. (#858) 2023-12-28 18:07:52 +02:00
github-actions[bot] e80626cf81 Publish New Versions (v2) (#854)
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
2023-12-28 10:37:04 -03:00
Amr Bashir 2e2fc8de69 fix(fs): use correct arg name for unwatch (#857)
* fix(fs): use correct arg name for unwatch

* fmt
2023-12-28 11:18:44 +01:00
Trevor Fitzgerald 85f8419682 fix(fs): Fix DebouncedEvent type to match what notify-rs returns (#848)
* fix(fs): Fix DebouncedEvent type to match what notify-rs returns

* Update fix-debounced-event-type.md
2023-12-27 15:39:05 +02:00
Amr Bashir c60123093d fix(fs): fix panic due to unwrap & truncate by default (#847)
* fix(fs): fix panic due to unwrap & truncate by default

closes #846

* fmt and change file
2023-12-27 15:27:45 +02:00
github-actions[bot] 38b5d37b54 Publish New Versions (v2) (#843)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-12-20 14:29:57 -03:00
Lucas Fernandes Nogueira 8b1d821a37 fix(deep-link): issue with tauri alpha.20 emit breaking change (#844) 2023-12-20 14:05:24 -03:00
阿良仔 bfa87da848 feat(http): expose proxy configuration (#824)
* feat(http): add proxy config

* chore: build iife api

* chore: allow `too_many_arguments`

* improvement

* refactor: restructure code

* improvement

* format
2023-12-20 16:14:12 +02:00
Lucas Nogueira c2115d8d21 chore: fill description field for new crates 2023-12-20 00:10:26 -03:00
github-actions[bot] 8c6d96e645 Publish New Versions (v2) (#832)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-12-19 23:56:51 -03:00
Lucas Nogueira 7bdc32079c fix(ci): set dependencies on covector config 2023-12-19 23:21:37 -03:00
Lucas Fernandes Nogueira 10b80391fc refactor(fs): use scope from tauri core (#825)
* fix(fs): scope checks on Android

On Android, when we call canonicalize() on "/data/user/0/appid" (which is the data dir), the result is a "/data/data/appid" path, so we need to adjust our scope for that.

* use scope from core

* update persisted-scope

* fix build

* dev branch
2023-12-19 23:19:01 -03:00
Tillmann 1eaf640255 Added Security Policy and Threat Model for Log Plugin (#828)
* Initial threat model and security contact

* Corrections and finalize policy
2023-12-19 22:25:42 -03:00
Amr Bashir 69a1fa099c feat(fs): improved API (#751)
* feat(fs): improved API

* fmt

* fix unix builds

* again

* clippy

* clippy

* fix import in docs examples

* fmt, clippy

* Update linux.rs

* add API for watch

* fix with `watcher` feature flag

* use baseDir for all commands

* do not export close function

* fix build

* organize and address review comments

* fmt

* generated files

* rename FsFile to FileHandle, move APIs and docs

* extend example

* extend `Resource`

* actually extend it

---------

Co-authored-by: FabianLars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-12-19 22:08:34 -03:00
Lucas Fernandes Nogueira 2cf8faa3e1 chore(deps): update to tauri alpha.20, @tauri-apps/api alpha.13 (#839)
* chore(deps): update to tauri alpha.20, @tauri-apps/api alpha.13

* fix lockfile
2023-12-20 00:18:05 +02:00
Amr Bashir e5f979f91a fix(core/updater): check if installer args are not empty before passing -ArgumentList (#818) 2023-12-19 17:37:27 -03:00
Lucas Nogueira 8df28a9875 feat(mobile): add biometric plugin (#829)
* chore: update deps, make mobile script paths relative

* feat(biometric): setup plugin folder

* feat: implement iOS

* add api

* android

* fix plugin name

* also check empty info.plist entry

* add example

* fix android

* supress

* lint

* better explanation

* add partners & contributed by

* change ext

* license headers

* update vite

* add covector setup

* tauri/dox removed

* add example

* docs

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-12-19 11:16:13 -03:00
Lucas Nogueira fe79adb5c7 feat(mobile): add NFC plugin (#830)
* feat: scaffold NFC plugin, initial iOS code

* adjust script paths (api example)

* update entitlements & plist

* update class name

* update api

* sketch api, remove desktop

* update response data

* add write fn

* remove commands

* fixes for write mode

* check nfc state before using the APIs

* fix(example): downgrade internal-ip to v7

* feat: typed iOS arguments

* update swift requirement

* android updates

* update tauri

* fix icon

* update example

* fix build

* fix notification example

* fix clipboard

* fix ios notification build

* fix info.plist

* update tauri

* add change file

* fmt

* update to new args class syntax :( [skip ci]

* add lang code handling in RTD_TEXT helper (written payload is broken without it)

* update nfc to latest tauri. use tauri from git

* update lockfile

* android: add initial nfc writer implementation

* check sdk version for pendingintent flag

* quicksaving basic ndef reading that doesn't crash

* add basic ndef reading (android)

* small cleanup

* change pending action type

* validate available state

* gradle 8.0.0

* use session class

* implement keep session alive

* fix notification crash??

* remove dox feature, fix breaking changes

* update dependencies

* fix shell tests [skip ci]

* fmt [skip ci]

* type safe args

* scan kind options

* commit .idea files

* update api

* update example

* fix app check

* alertmessage options for iOS

* default to tag on example

* fix(ios): always close session on write, remove keepsessionalive option

* add kind input to write options

* empty records if message not found

* fill tag metadata for ndef read

* add contributors

* update vite

* covector setup

* tauri/dox removed

* docs and examples

* fmt [skip ci]

---------

Co-authored-by: FabianLars-crabnebula <fabianlars@crabnebula.dev>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-12-19 10:50:31 -03:00
Fabian-Lars 7c59e3785b feat(dialog): Re-export FileResponse (#837)
closes #835
2023-12-19 15:35:53 +02:00
Amr Bashir b1c6a7885e fix(core/dialog): reconstruct path using appropriate separator (#820)
* fix(core/dialog): reconstruct path using appropriate separator

ref: tauri-apps/tauri#8074

* Reference original issue [skip ci]
2023-12-18 21:09:04 -03:00
Lucas Fernandes Nogueira 2d6bfbfacf feat(fs): include full error message (#826) 2023-12-18 15:01:47 -03:00
github-actions[bot] 68cb23f9c0 Publish New Versions (v2) (#723)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-12-14 15:44:44 -03:00
Fabian-Lars 387c2f9e0c chore: Update Tauri to alpha.18 (#802) 2023-12-11 15:41:42 -03:00
Fabian-Lars 78e60e6618 fix(updater): Typo in error enum (#812) 2023-12-11 15:19:05 -03:00
Tillmann a848e1870a chore(barcode): Added security policy (#766) 2023-12-07 13:42:18 +01:00
Mitchell van der Hoeff f4b2674fd5 fix(sql): Encode JSON numbers as f64 to fix JSON_EXTRACT queries (#797)
Signed-off-by: Mitchell van der Hoeff <8631205+mitchelljustin@users.noreply.github.com>
2023-12-06 15:20:35 +01:00
Michael Howell 0e3e3d4eac fix(dialog): Pin rfd to 0.12 to prevent freeze on Linux (#796)
* Do not use rfd 0.12.1

https://github.com/PolyMeilex/rfd/pull/152
conflicts with the way tauri uses it.

> Yeah, this is a decent solution, not much else we can do about this global state bs on C side.
>
> This will obviously blow up as soon as someone has other code that also uses GTK, but let's ignore that for now, as I want to get rid of GTK backend one day anyway (#66).

Yes, Tauri is other code that also uses GTK, and it does, indeed, blow up. The best way around this is to stop using rfd entirely (they're planning to drop the GTK backend, which will probably break since the XDG Portal API doesn't cover message dialogs).

* Update dialog-pin-rfd.md

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-12-05 19:31:08 +01:00
kris-ava e7c72c9816 fix(updater): fix appimage extraction (#784)
* fix updater on linux

* review changes

* Apply suggestions from code review

* change file

---------

Co-authored-by: Kris Krolak <krzysiek.krolak@gmail.com>
2023-11-30 20:46:02 +02:00
pashokitsme 2e2c0a1b95 fix(dialog): fix message dialog return with custom buttons, fixes #711 (#769)
* fix confirm

* remove unnecessary lines

* fix

* change file
2023-11-27 19:55:26 +02:00
Fabian-Lars f49b391f10 Merge pull request #761 from tauri-apps/ci/features
ci: Test rust crates with all features enabled
2023-11-24 11:12:11 +01:00
Fabian-Lars df73183f2c test http without features 2023-11-23 22:30:25 +01:00
FabianLars bd0b015180 update notify version to match code 2023-11-23 22:05:01 +01:00
Fabian-Lars 7d1f3e7a08 ci: Test rust crates with all features enabled 2023-11-23 21:56:49 +01:00
Fabian-Lars 913b767c4b chore: Merge remote-tracking branch 'origin/v1' into v2 2023-11-23 20:47:28 +01:00
FabianLars 058d5dde0d Merge remote-tracking branch 'origin/v1' into v1-into-v2-again 2023-11-23 19:59:58 +01:00
Fabian-Lars 8c9ff2a2a9 chore: Add sponsors section to readme (#758)
* chore: Add sponsors section to readme

* which link style works in nested folders?

* add sponsors to plugin readmes

* use https links as src

* double test it with the pr branch

* revert last commit

* fmt
2023-11-23 17:18:09 +01:00
Kai Hata 5106b9d0c6 docs(localhost): incorrect usage of RemoteDomainAccessScope in README. (#757)
* Fix incorrect usage of RemoteDomainAccessScope in README.

* Fix incorrect usage of RemoteDomainAccessScope in README.
2023-11-23 11:03:33 +01:00
Fabian-Lars 0864c54147 fix(updater): replace url vars in query params (#756) 2023-11-22 16:08:24 +01:00
renovate[bot] 2d941a407b chore(deps): update dependency svelte-check to v3.6.1 (#755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 14:13:57 +01:00
renovate[bot] 0617e2354a chore(deps): update dependency rollup to v4.5.1 (#754)
* chore(deps): update dependency rollup to v4.5.1

* pnpm dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-11-22 13:58:45 +01:00
renovate[bot] e66b196852 chore(deps): update dependency vite to v5.0.2 (#753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 18:24:35 +01:00
renovate[bot] 32309c90d8 chore(deps): update dependency vite to v5.0.1 (#752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 14:56:57 +01:00
Amr Bashir 445c1e6cb6 feat(notifications): use the ligh windows-version crate (#750)
* feat(notifications): use the ligh `windows-version` crate

* Update desktop.rs

* optional
2023-11-21 14:23:47 +02:00
Amr Bashir 88d260d901 fix(fs): add options argument for exists function closes #734 (#744)
closes #734
2023-11-21 01:31:00 +02:00
renovate[bot] a3b506f559 chore(deps): update typescript-eslint monorepo to v6.12.0 (#748)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 20:38:19 +01:00
renovate[bot] 0a387ea358 chore(deps): update dependency typescript to v5.3.2 (#747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 20:35:03 +01:00
renovate[bot] f16433be43 chore(deps): update dependency svelte to v4.2.7 (#743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 16:25:37 +01:00
Amr Bashir eea3df56ef fix: add back main, module and types field in top-level package.json (#742)
closes #738

`"moduleResolution": "node"` doesn't handle the `exports` field
2023-11-20 16:00:55 +02:00
renovate[bot] 53a1a7e436 chore(deps): update dependency vite to v5 (#732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 14:02:53 +01:00
renovate[bot] af3b36647c chore(deps): update dependency svelte to v4.2.6 (#741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 13:57:02 +01:00
renovate[bot] 20ef22fc3a chore(deps): update dependency eslint-config-standard-with-typescript to v40 (#740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 12:28:03 +01:00
renovate[bot] 4e6712ed40 chore(deps): update dependency rollup to v4.5.0 (#739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 12:18:59 +01:00
renovate[bot] 8d6a60d4a2 chore(deps): update dependency eslint to v8.54.0 (#737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 23:19:20 +01:00
renovate[bot] 19529b6097 chore(deps): update dependency svelte to v4.2.5 (#736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 18:14:05 +01:00
renovate[bot] b11221a7c9 chore(deps): update dependency svelte to v4.2.4 (#733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 13:04:41 +01:00
Amr Bashir 5a8bbe2967 chore: remove dead code from updater test (#731) 2023-11-16 18:55:46 +02:00
renovate[bot] 642a195d34 fix(deps): update rust crate windows-sys to 0.52 (#730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 17:10:19 +02:00
Amr Bashir a3ca64275a fix(updater): Use escaped installer path to start the msi updater (#728)
* fix(updater): Use escaped installer path to start the msi updater

Continuation of #727

* change file

* fix build
2023-11-16 01:26:11 +02:00
Fabian-Lars 9db40a6dc4 fix(updater): Use escaped installer path to start the nsis updater (#727)
Port of v1 change: https://github.com/tauri-apps/tauri/pull/7956
2023-11-15 14:58:57 +02:00
Amr Bashir 1b98b85a1f refactor: simplify rollup config and match @tauri-apps/api output style (#722)
* refactor: simplify rollup config and match `@tauri-apps/api` output style

* add license headers

* update api-iife.js [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-11-14 21:09:53 +02:00
renovate[bot] cb1586b4d1 chore(deps): update dependency @sveltejs/kit to v1.27.6 (#726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 17:48:03 +01:00
renovate[bot] aeca2d0d87 chore(deps): update dependency rollup to v4.4.1 (#725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 12:06:00 +01:00
Amr Bashir fc62ead565 fix(os): use an internal object instead of window.__TAURI__, closes #719 (#721)
fix(os): use an internal object instead of ` window.__TAURI__`, closes  #719
2023-11-13 21:55:00 -03:00
Fabian-Lars 251852ccbc chore: Merge branch v1 into v2 (#702) 2023-11-13 21:50:13 -03:00
renovate[bot] b13d97c7c7 chore(deps): update typescript-eslint monorepo to v6.11.0 (#720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 20:10:58 +01:00
renovate[bot] f807d02c08 chore(deps): update dependency prettier to v3.1.0 (#718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 09:34:04 +01:00
renovate[bot] 2888925973 chore(deps): update dependency rollup to v4.4.0 (#716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 12:12:10 +01:00
renovate[bot] eac0cbff3c chore(deps): update dependency @sveltejs/kit to v1.27.5 (#715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-11 20:31:25 +01:00
renovate[bot] 8ab2267944 chore(deps): update dependency rollup to v4.3.1 (#714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-11 14:12:32 +01:00
renovate[bot] 84a2a11c4d chore(deps): update dependency svelte-check to v3.6.0 (#713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 18:01:35 +01:00
renovate[bot] 04e396d036 chore(deps): update dependency svelte to v4.2.3 (#712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 15:20:58 +01:00
renovate[bot] 5ca7a63da2 chore(deps): update dependency eslint-plugin-n to v16.3.1 (#710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 15:10:22 +01:00
renovate[bot] 61e862597e chore(deps): update dependency @sveltejs/kit to v1.27.4 (#709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 15:16:52 +01:00
renovate[bot] 6865299149 chore(deps): update dependency eslint-plugin-n to v16.3.0 (#705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 09:02:26 +01:00
renovate[bot] ba6acafb5b chore(deps): update typescript-eslint monorepo to v6.10.0 (#704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 21:04:27 +01:00
renovate[bot] 4247434ed8 chore(deps): update dependency rollup to v4.3.0 (#700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 11:20:50 +01:00
renovate[bot] 33e40d819d chore(deps): update dependency eslint to v8.53.0 (#699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 11:09:29 +01:00
renovate[bot] af0ee307d4 chore(deps): update dependency @sveltejs/adapter-auto to v2.1.1 (#697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 11:07:59 +01:00
renovate[bot] 96d5cabc17 chore(deps): update dependency @sveltejs/kit to v1.27.3 (#698)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 11:03:21 +01:00
renovate[bot] 8d6045421a chore(deps): update dependency rollup to v4.2.0 (#693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 11:14:58 +01:00
renovate[bot] c77cbe936d chore(deps): update dependency rollup to v4.1.6 (#692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 10:51:53 +01:00
renovate[bot] 11048fd997 chore(deps): update typescript-eslint monorepo to v6.9.1 (#691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 20:51:36 +01:00
Fabian-Lars f595684ba8 ci: ignore tauri-cli vite config CVE (#690) 2023-10-30 08:41:51 -03:00
renovate[bot] d472eebad2 chore(deps): update dependency rollup to v4 (#639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 11:02:52 +01:00
renovate[bot] c27699ffab chore(deps): update dependency @sveltejs/kit to v1.27.2 (#689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 10:26:01 +01:00
github-actions[bot] d4d1633c4d Publish New Versions (v2) (#688)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-29 16:19:52 -03:00
Lucas Fernandes Nogueira e438e0a62d feat: update to alpha.17, typed mobile plugin IPC arguments (#676)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-10-29 16:06:44 -03:00
renovate[bot] 68d77f999c chore(deps): update dependency @sveltejs/kit to v1.27.1 (#685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-25 19:39:28 +02:00
Fabian-Lars 1712f27b77 feat(upload): Use BufWriter for file downloads. (#684) 2023-10-25 12:25:33 +02:00
renovate[bot] 8dd371814a chore(deps): update dependency eslint-plugin-import to v2.29.0 (#678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-24 11:50:35 +02:00
renovate[bot] 5c3b2f7511 chore(deps): update dependency @sveltejs/kit to v1.27.0 (#681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-24 11:17:57 +02:00
renovate[bot] 227bf5424a chore(deps): update typescript-eslint monorepo to v6.9.0 (#682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-24 11:12:26 +02:00
Lucas Fernandes Nogueira 76cfdc32b4 fix: adjust chrono dependency requirement (#680) 2023-10-23 11:17:32 -03:00
Lucas Fernandes Nogueira 0fc910a9f3 fix(authenticator): u2f cannot handle the chrono 0.4.30 breaking change (#679)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-10-23 10:30:16 -03:00
github-actions[bot] 437dfba814 Publish New Versions (v2) (#629)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-10-23 09:01:39 -03:00
Mo beb6b139eb Fix invoke calls in dialog & shell init scripts (#675)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-22 10:09:40 -03:00
renovate[bot] c25b7537e3 chore(deps): update dependency eslint to v8.52.0 (#674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 10:28:46 +02:00
Lucas Fernandes Nogueira 5c137365c6 chore: update to tauri alpha.16, api alpha.9 (#673)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-10-20 13:50:18 -03:00
Amr Bashir b7c5407cac refactor: remove window and app plugins (#671)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-10-19 23:17:09 +00:00
renovate[bot] 9e24e52164 chore(deps): update dependency @tauri-apps/cli to v1.5.5 (#672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 22:54:28 +00:00
pashokitsme 0e642e68de fix(updater): installation on macos #591 (#592)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
fix(updater): installation on macos #591
fix(updater): use zip flate2 feature #591
fix(updater): use zip flate2 feature #591"
2023-10-19 22:50:37 +00:00
Lucas Fernandes Nogueira d1b7c2c1fb feat: build docs.rs documentation for Android (#654) 2023-10-19 17:39:54 +00:00
Lucas Fernandes Nogueira 5de23e79f9 chore: update deps, make mobile script paths relative (#649) 2023-10-19 14:31:42 -03:00
renovate[bot] 444a16ca73 chore(deps): update dependency @sveltejs/kit to v1.26.0 (#668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 12:53:41 +02:00
renovate[bot] cff0cdeaa8 chore(deps): update dependency svelte to v4.2.2 (#670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 12:52:03 +02:00
dependabot[bot] 57c1db41a3 chore(deps): bump rustix from 0.37.23 to 0.37.25 (#669)
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.37.23 to 0.37.25.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.37.23...v0.37.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-19 12:43:17 +02:00
renovate[bot] 6630e5db75 fix(deps): update tauri monorepo (#665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 12:50:05 +02:00
renovate[bot] 662c61826b chore(deps): update dependency vite to v4.5.0 (#666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 12:45:03 +02:00
renovate[bot] 44df7726ae chore(deps): update typescript-eslint monorepo to v6.8.0 (#664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 19:43:23 +02:00
Fabian-Lars 1240631840 fix(websocket): Fix argument mismatch, fixes #661 (#663) 2023-10-16 20:40:09 +03:00
Amr Bashir c2103c91bc feat(global-shortcut): pass app handle to the closure, closes #657 (#658)
* feat(global-shortcut): pass app handle to the closure, closes #657

* Update global-shortcut-app-handle.md
2023-10-16 20:39:27 +03:00
Fabian-Lars 28ec084e56 fix(updater): Fix endpoint string replacements, fixes #655 (#662)
* fix(updater): Fix endpoint string replacements, fixes #655

* fmt
2023-10-16 20:39:02 +03:00
renovate[bot] b4535af927 chore(deps): update dependency eslint-plugin-n to v16.2.0 (#651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 19:33:00 +02:00
Pylogmon 77b81af36c chore(sql): Refine features for sql plugin (#660)
This makes it possible to use the sqlite feature without ring for windows-aarch64 support until all dependencies update to ring 0.17
2023-10-15 18:34:47 +02:00
renovate[bot] 9b20f28d74 chore(deps): update dependency @sveltejs/kit to v1.25.2 (#647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 08:59:10 +02:00
renovate[bot] 1e56d86b51 chore(deps): update typescript-eslint monorepo to v6.7.5 (#646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 22:27:01 +02:00
renovate[bot] 07650ca94b chore(deps): update dependency @rollup/plugin-node-resolve to v15.2.3 (#645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 11:55:42 +02:00
renovate[bot] d68d5cce60 chore(deps): update dependency @tauri-apps/cli to v1.5.2 (#643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 18:55:01 +02:00
renovate[bot] faab5f6cee chore(deps): update dependency eslint-config-standard-with-typescript to v39.1.1 (#641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-07 12:14:32 +02:00
renovate[bot] 4ecc649839 chore(deps): update dependency eslint to v8.51.0 (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-07 11:19:51 +02:00
renovate[bot] 9f27e6e441 chore(deps): update dependency @rollup/plugin-typescript to v11.1.5 (#638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 17:33:33 +02:00
renovate[bot] 3f0917bd50 chore(deps): update dependency @rollup/plugin-terser to v0.4.4 (#637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 17:11:22 +02:00
renovate[bot] 9048f80a4e chore(deps): update dependency @rollup/plugin-node-resolve to v15.2.2 (#636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 17:05:30 +02:00
mellobacon ac7390973b feat(log): Custom .log file names (#633)
* feat (log): custom .log file names

* fix (log): corrected typo

* chore (log): refactor

* chore (log): replaced empty string with Option

* Apply suggestions from code review

* Update plugins/log/src/lib.rs

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-10-05 15:24:04 +02:00
renovate[bot] d5f5d78830 chore(deps): update dependency vite to v4.4.11 (#635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 13:51:01 +02:00
renovate[bot] 1f799ae25e chore(deps): update dependency vite to v4.4.10 (#632)
* chore(deps): update dependency vite to v4.4.10

* update postcss to fix audit

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-10-04 11:47:49 +02:00
renovate[bot] fa32d1afa9 chore(deps): update dependency @tauri-apps/cli to v1.5.1 (#630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-03 17:36:00 +02:00
renovate[bot] f41d3e5e77 chore(deps): update typescript-eslint monorepo to v6.7.4 (#631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-03 16:34:35 +02:00
Lucas Fernandes Nogueira 8902fe9adf fix(notification): permission on mobile returns prompt (#627) 2023-09-30 10:09:21 -03:00
renovate[bot] 9b96996b5a fix(deps): update tauri monorepo to v1.5.0 (#626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 11:59:59 +02:00
renovate[bot] 9af4c3727c chore(deps): update dependency rollup to v3.29.4 (#624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 11:47:03 +02:00
Xinyu Yang 3d279094d4 fix(positioner): Prevent tray relative windows from being moved off-screen (#291)
* feat: add system tray positioning method

* apply patch

* remove pos

* fix linter

* fix cargo fmt

* linter

* add changefile

* Update and rename stronghold-tray-position.md to tray-position.md

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-09-27 15:55:44 +02:00
renovate[bot] 6c7a4c0984 chore(deps): update dependency eslint-config-standard-with-typescript to v39 (#622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 21:00:16 +02:00
renovate[bot] 1c17161f2a chore(deps): update dependency eslint-plugin-n to v16.1.0 (#580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:55:07 +02:00
renovate[bot] 6111c7f3da fix(deps): update rust crate notify-debouncer-mini to 0.4 (#577)
* fix(deps): update rust crate notify-debouncer-mini to 0.4

* Update lib.rs

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-09-26 18:54:26 +02:00
renovate[bot] 746067bb70 fix(deps): update rust crate auto-launch to 0.5 (#621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:53:46 +02:00
renovate[bot] 0623903f12 chore(deps): update dependency eslint to v8.50.0 (#618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:38:06 +02:00
renovate[bot] 043de033b0 chore(deps): update dependency @rollup/plugin-node-resolve to v15.2.1 (#572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:36:46 +02:00
renovate[bot] 7432a399db fix(deps): update rust crate aho-corasick to 1.1 (#620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:36:26 +02:00
renovate[bot] 305c5793ae chore(deps): update dependency eslint-plugin-import to v2.28.1 (#575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:30:56 +02:00
renovate[bot] 4a39b74d5c chore(deps): update dependency typescript to v5.2.2 (#619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:29:31 +02:00
renovate[bot] dc5a14b6ad chore(deps): update dependency tslib to v2.6.2 (#574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 18:24:12 +02:00
renovate[bot] 2b65e0a149 chore(deps): update typescript-eslint monorepo to v6.7.3 (#579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 17:00:30 +02:00
renovate[bot] beb9095f11 chore(deps): update dependency rollup to v3.29.3 (#581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 16:59:51 +02:00
renovate[bot] 418294b1a3 chore(deps): update dependency svelte-check to v3.5.2 (#617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 16:51:09 +02:00
renovate[bot] 3febb72f28 chore(deps): update dependency svelte to v4.2.1 (#616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 16:38:45 +02:00
renovate[bot] 90fecadb86 chore(deps): update dependency prettier to v3.0.3 (#615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 16:26:36 +02:00
dependabot[bot] 63834d9b63 chore(deps): bump tungstenite from 0.20.0 to 0.20.1 (#614)
Bumps [tungstenite](https://github.com/snapview/tungstenite-rs) from 0.20.0 to 0.20.1.
- [Changelog](https://github.com/snapview/tungstenite-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/snapview/tungstenite-rs/compare/v0.20.0...v0.20.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-26 16:22:07 +02:00
renovate[bot] 8654caa26e chore(deps): update dependency @rollup/plugin-typescript to v11.1.4 (#586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 16:21:12 +02:00
renovate[bot] 473991371d chore(deps): update dependency @sveltejs/kit to v1.25.1 (#584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 15:58:34 +02:00
Fabian-Lars e98e8eac3d fix(docs): Revert a single change from #612 (#613) 2023-09-26 16:44:51 +03:00
Praveen Ravichandran 44d8f60e0d fix(typo): fixed some language related issues in the documentation (#612) 2023-09-26 09:25:22 +03:00
Fermín Cirella a1738b2401 fix(notification): function 'invoke' not found in permission request (#596) 2023-09-26 04:08:59 +03:00
Lorenzo Castellino b04bde3461 fix: small typo in README (#611)
"te" -> "the"
2023-09-24 17:19:46 +02:00
Fabian-Lars 0190f68f1d fix(sql): split up datatypes more granular, fixes #462 (#608) 2023-09-20 12:03:30 +02:00
Fabian-Lars 5b85dd22c7 fix(sql): decode float columns as f32, closes #602 (#607) 2023-09-20 07:30:12 +02:00
Lucas Fernandes Nogueira 76832e60bf Revert "fix(deps): update rust crate rust-argon2 to v2 (#552)" (#565)
This reverts commit 83148da959.

Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-09-19 16:34:47 +02:00
github-actions[bot] 2b9ddbe29a Publish New Versions (v2) (#603)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-09-14 11:41:25 -03:00
Tejas Kumar 8e8ba52766 Fix logos (#604)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-09-14 10:35:11 -03:00
Lucas Fernandes Nogueira 454428cd50 feat: add barcode scanner plugin (#536) 2023-09-14 09:34:04 -03:00
Fabian-Lars eccd6f977a feat: Add deep link plugin for mobile (#504)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-09-14 08:55:51 -03:00
Lucas Fernandes Nogueira 2409b01fe7 chore(examples): update to tauri 2.0.0-alpha.14 (#600) 2023-09-12 09:39:17 -03:00
github-actions[bot] 903361100c Publish New Versions (v2) (#589)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-09-07 00:23:17 -03:00
Lucas Fernandes Nogueira 4e2cef9b70 chore(deps): update to tauri alpha.12 (#593) 2023-09-07 00:11:07 -03:00
Jason Tsai 70e535abd5 fix(window): use button property for data-tauri-drag-region left mouse button detection (#590) 2023-09-04 20:09:23 +03:00
i-c-b 2cb0fa719b fix(http): remove cmd property from http|fetch invoke, closes #587 (#588)
* Remove `cmd` property from `http|fetch` invoke

* Build generated JS file

* Create http-remove-cmd-property.md

* Fix incompatible declaration for reading body

Co-authored-by: Louis Bailleau <Bricklou@users.noreply.github.com>

* Build generated JS file

Co-authored-by: Louis Bailleau <Bricklou@users.noreply.github.com>

---------

Co-authored-by: Louis Bailleau <Bricklou@users.noreply.github.com>
2023-09-04 15:45:41 +03:00
dependabot[bot] 5b814f56e6 chore(deps): bump rustls-webpki from 0.101.2 to 0.101.4 (#582)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.101.2 to 0.101.4.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](https://github.com/rustls/webpki/compare/v/0.101.2...v/0.101.4)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-23 08:16:29 +02:00
renovate[bot] 6647e6ea90 chore(deps): update dependency prettier to v3.0.2 (#563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 21:00:35 +02:00
github-actions[bot] 319de692bf Publish New Versions (v2) (#560)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-08-15 10:58:32 -03:00
Lucas Fernandes Nogueira 1a94e73db7 fix(ci): run pnpm install with --no-frozen-lockfile (#562) 2023-08-15 10:54:40 -03:00
renovate[bot] 83148da959 fix(deps): update rust crate rust-argon2 to v2 (#552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 10:11:04 -03:00
renovate[bot] e8d7e765e7 chore(deps): update dependency svelte to v4.2.0 (#550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 08:01:32 -03:00
renovate[bot] 76bcecf5b2 chore(deps): update dependency rollup to v3.28.0 (#544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 07:47:58 -03:00
renovate[bot] d49aa664e9 chore(deps): update dependency eslint to v8.47.0 (#549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 07:47:30 -03:00
renovate[bot] bd0d88243a chore(deps): update dependency svelte-check to v3.5.0 (#551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 07:44:43 -03:00
renovate[bot] f001df870f chore(deps): update dependency @sveltejs/kit to v1.22.6 (#548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 07:44:09 -03:00
renovate[bot] 72a6e3ba68 chore(deps): update typescript-eslint monorepo to v6.4.0 (#538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 07:43:48 -03:00
Gökçe Merdun e510f2fe4c fix(os): correct typo in OsType (#561)
* fix(window): correct typo in OsType

* change file

* fix fmt check
2023-08-15 03:39:32 +03:00
Lucas Fernandes Nogueira d0c0084859 fix(example): build on macOS (#557) 2023-08-14 15:54:29 -07:00
Lucas Fernandes Nogueira 265dbc02e3 chore(shell): remove outdated todo (#559) 2023-08-14 15:54:17 -07:00
Lucas Fernandes Nogueira aec17a90fc feat(http): improve performance (#558) 2023-08-14 15:53:55 -07:00
Lucas Fernandes Nogueira 12adc1dbec fix(ci): update pnpm lockfile on version bump, fix covector config (#556) 2023-08-14 13:26:28 -07:00
github-actions[bot] 553c87bde0 Publish New Versions (v2) (#423)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-14 15:11:44 -03:00
Lucas Fernandes Nogueira d74fc0a097 feat: update to alpha.11 (#555) 2023-08-14 14:51:20 -03:00
Lucas Fernandes Nogueira d5a7c77a8d fix(docs): enable tauri/dox feature on docs.rs build (#545) 2023-08-10 10:23:27 -03:00
Lorenzo Rizzotti 7e58dc8502 feat(websocket): add custom headers feature (#542)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-08 13:18:20 -03:00
Lorenzo Rizzotti ac495b9fb4 fix(websocket): config (#541)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-08 10:32:34 -03:00
Alexandre Dang dacde1629d feat(stronghold): add an init function that uses argon2 (#449)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-08 09:36:16 -03:00
Amr Bashir 4ab90f048e feat(updater): refactor and improvements (#431)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-08-07 16:01:21 -03:00
Amr Bashir 84133b57b8 feat(window): refactor and improvements (#426)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-07 13:20:17 -03:00
Lucas Fernandes Nogueira 5b3210c224 feat(shell): expand Command APIs (#526)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-08-07 09:38:12 -03:00
renovate[bot] 700549ab02 chore(deps): update dependency prettier to v3.0.1 (#532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 09:37:51 -03:00
renovate[bot] 811b1ec12d chore(deps): update dependency vite to v4.4.9 (#537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 09:36:47 -03:00
Jason Tsai be591d2feb fix(dialog): using AsyncMessageDialog for non linux, closes tauri#7182 (#445) 2023-08-07 09:34:16 -03:00
renovate[bot] 174c5e52e3 chore(deps): update dependency rollup to v3.27.2 (#534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 08:35:52 -03:00
renovate[bot] 37d057df61 chore(deps): update dependency eslint-config-prettier to v9 (#535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 08:35:35 -03:00
Amr Bashir 7d9df7297a feat(http): refactor and improvements (#428)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-08-07 08:33:00 -03:00
renovate[bot] cdb77c4b65 chore(deps): update dependency eslint-plugin-import to v2.28.0 (#520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 12:05:41 -03:00
Lucas Fernandes Nogueira 7f2e2dd5b8 fix(docs): plugin usage examples using wrong package name (#527) 2023-08-02 07:41:14 -03:00
renovate[bot] e47dca954f chore(deps): update dependency rollup to v3.27.0 (#522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 07:40:45 -03:00
renovate[bot] 94f62d2503 chore(deps): update typescript-eslint monorepo to v6.2.1 (#528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 07:40:34 -03:00
renovate[bot] ee0d314bb5 chore(deps): update dependency svelte to v4.1.2 (#524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 18:14:12 +02:00
renovate[bot] ae8a581f9a chore(deps): update dependency @sveltejs/kit to v1.22.4 (#525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 18:06:12 +02:00
renovate[bot] 67bff4559d chore(deps): update dependency vite to v4.4.8 (#529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 18:01:29 +02:00
Lorenzo Lewis 6f01bc11ab chore: change readme banners urls (#523)
* set readme banners to absolute url

Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>

* Revert "set readme banners to absolute url"

This reverts commit c46b464c69.

* update banners to absolute paths

Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>

* Revert "update banners to absolute paths"

This reverts commit c8b8f9309e.

* fix banner paths

Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>

* Revert "fix banner paths"

This reverts commit 27edc59b41.

* fix banners...again

Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>

---------

Signed-off-by: Lorenzo Lewis <lorenzo_lewis@icloud.com>
2023-07-28 21:29:50 +02:00
renovate[bot] d272bde2bb chore(deps): update dependency eslint to v8.46.0 (#521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 18:50:40 +02:00
renovate[bot] 919616d7d3 chore(deps): update typescript-eslint monorepo to v6.2.0 (#514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:16:30 +02:00
renovate[bot] b60b46a0b8 chore(deps): update dependency svelte to v4.1.1 (#508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:15:02 +02:00
renovate[bot] 6d8f517148 chore(deps): update dependency tslib to v2.6.1 (#515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:04:12 +02:00
renovate[bot] 949c59f8a5 chore(deps): update dependency vite to v4.4.7 (#510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:02:51 +02:00
renovate[bot] b99844706e chore(deps): update dependency eslint-config-prettier to v8.9.0 (#517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:01:27 +02:00
renovate[bot] 92514cca47 fix(deps): update rust crate tokio-tungstenite to 0.20 (#513)
* fix(deps): update rust crate tokio-tungstenite to 0.20

* adapt new websocket config struct

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-07-24 12:22:22 +02:00
renovate[bot] 81fb450c39 chore(deps): update dependency eslint-config-standard-with-typescript to v37 (#512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-22 21:28:33 +02:00
renovate[bot] c3a6dab24c chore(deps): update dependency eslint-config-standard-with-typescript to v36.1.1 (#511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-22 09:34:05 +02:00
Fabian-Lars aba07c27b8 Merge v1 into v2 (#468)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
Co-authored-by: Alexandre Dang <124160233+vdang-crabnebula@users.noreply.github.com>
Co-authored-by: Ludea <ludovicw35@hotmail.com>
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
Co-authored-by: Duke Jones <104690+dukejones@users.noreply.github.com>
Co-authored-by: NaokiM03 <37442712+NaokiM03@users.noreply.github.com>
Co-authored-by: Thibault <thibault_poisson@orange.fr>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: David Blythe <49919035+writeDavid@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
fix(stronghold): change wrong argument name for `remove` (#422)
fix(window-state): correctly set decoration state if no saved state exists, fixes #421 (#424)
fix(stronghold): return null if there is no record (#129)
fix(window-state): propagate promise (#435)
closes #432
fix(window-state): manual default implentation (#425)
fix(window-state): manual default implentation, closes #421
fix(deps): update rust crate iota-crypto to 0.21 (#438)
fix readme example (#447)
fix: handle recursive directory correctly (#455)
fix(deps): update rust crate sqlx to 0.7. plugin-sql msrv is now 1.65 (#464)
fix(persisted-scope): separately save asset protocol patterns (#459)
fix(deps): update rust crate iota-crypto to 0.22 (#475)
fix(deps): update tauri monorepo to v1.4.0 (#482)
resolve to v15.1.0 (#489)
fix(deps): update rust crate iota-crypto to 0.23 (#495)
2023-07-19 14:50:43 -03:00
renovate[bot] 0863f800b8 chore(deps): update dependency rollup to v3.26.3 (#503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 10:55:58 +02:00
renovate[bot] 600ad30756 chore(deps): update typescript-eslint monorepo to v6.1.0 (#505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 10:43:33 +02:00
David Blythe 51f20b438e MySQL examples (#501)
* Update README.md

* Update index.ts
2023-07-16 22:24:20 +02:00
renovate[bot] 4fd6b58070 chore(deps): update dependency eslint-config-standard-with-typescript to v36.1.0 (#500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-15 11:12:31 +02:00
renovate[bot] c8c6d56d1b chore(deps): update dependency vite to v4.4.4 (#496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 20:27:41 +02:00
renovate[bot] 2ed0fd716c chore(deps): update dependency eslint-config-standard-with-typescript to v36.0.1 (#497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 20:08:24 +02:00
renovate[bot] 8286b06198 chore(deps): update dependency eslint to v8.45.0 (#498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 20:00:08 +02:00
renovate[bot] 180ec441aa fix(deps): update rust crate iota-crypto to 0.23 (#495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 22:40:05 +02:00
renovate[bot] 07f3a89df0 chore(deps): update dependency @sveltejs/kit to v1.22.3 (#493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 09:59:57 +02:00
renovate[bot] c009cb383f chore(deps): update dependency eslint-plugin-n to v16.0.1 (#485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 21:34:37 +02:00
renovate[bot] 00915af7e7 chore(deps): update dependency @sveltejs/kit to v1.22.2 (#484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 21:29:57 +02:00
renovate[bot] c499238892 chore(deps): update dependency svelte to v4.0.5 (#486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 19:26:59 +02:00
renovate[bot] ac6f08f193 chore(deps): update dependency svelte-check to v3.4.6 (#487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 19:17:53 +02:00
renovate[bot] 84d8a21e55 chore(deps): update dependency vite to v4.4.3 (#492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 18:48:47 +02:00
renovate[bot] 280f99c5f3 chore(deps): update dependency vite to v4.4.2 (#488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 18:00:15 +02:00
renovate[bot] 8c10a1b0a7 chore(deps): update dependency @rollup/plugin-node-resolve to v15.1.0 (#489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 15:22:10 +02:00
renovate[bot] b6ffbe33da chore(deps): update dependency eslint to v8.44.0 (#490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 15:03:06 +02:00
renovate[bot] 2f2da76aa8 chore(deps): update dependency rollup to v3.26.2 (#491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 15:02:11 +02:00
renovate[bot] 9dba680114 chore(deps): update dependency tslib to v2.6.0 (#483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:44:03 +02:00
renovate[bot] 2365c46534 fix(deps): update tauri monorepo to v1.4.0 (#482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:39:27 +02:00
renovate[bot] 01ede23b34 chore(deps): update typescript-eslint monorepo to v6 (#481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:36:11 +02:00
renovate[bot] a2503b795d chore(deps): update dependency typescript to v5.1.6 (#480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:32:38 +02:00
renovate[bot] 65e6870195 chore(deps): update dependency @rollup/plugin-typescript to v11.1.2 (#479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:16:38 +02:00
renovate[bot] ec74b2d69a chore(deps): update dependency @rollup/plugin-terser to v0.4.3 (#478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 14:13:25 +02:00
Fabian-Lars 6845cefc82 chore: Lock npm deps versions (#477)
* chore: Lock npm deps versions

* lock ws example too

* override optionator
2023-07-11 14:09:35 +02:00
renovate[bot] 2a8e168149 fix(deps): update rust crate iota-crypto to 0.22 (#475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 11:49:09 +02:00
Fabian-Lars efcc3df3fe chore: Update pnpm to v7.33.1 (#472) 2023-07-10 15:39:29 +02:00
Pretzel Vector 0bba6932c0 fix(fs-js): fix writeBinaryFile invalid command usage (#454)
* write_binary_file -> write_file

* Missing artifact

* Create fs-wiret-binary-file.md

---------
2023-07-10 16:18:37 +03:00
Fabian-Lars 9e440d27ae chore: Re-add changefiles from #416 and #422 (#457)
This reverts commit 8916544034.
2023-07-10 12:51:28 +02:00
github-actions[bot] 395ff65547 Publish New Versions (#470)
* publish new versions

* Update Cargo.toml

---------

Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-07-10 12:29:59 +02:00
Fabian-Lars ad3028646c fix(persisted-scope): separately save asset protocol patterns (#459) 2023-07-10 11:22:11 +02:00
renovate[bot] 0d0ed7b907 chore(deps): update dependency prettier to v3 (#467)
* chore(deps): update dependency prettier to v3

* fmt

* semver override

* update example deps

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-07-06 11:47:41 +02:00
renovate[bot] 92233ea64a fix(deps): update rust crate sqlx to 0.7. plugin-sql msrv is now 1.65 (#464)
* fix(deps): update rust crate sqlx to 0.7

* Update sql's msrv in workflow to 1.65

* Update README.md

* Update Cargo.toml

* Update Cargo.toml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-07-05 10:46:51 +02:00
Amr Bashir 52ef0addd8 feat(shell): ensure launched processes are detached (#463)
* feat(shell): ensure launched processes are detached

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

* change file
2023-07-04 14:30:22 +03:00
renovate[bot] 36b7296746 chore(deps): update dependency svelte to v4 (#453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 10:52:33 +02:00
renovate[bot] d9b2331237 chore(deps): update dependency eslint-config-standard-with-typescript to v36 (#458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 10:50:38 +02:00
github-actions[bot] 8916544034 remove changefiles to publish release (#456)
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
2023-06-30 00:26:02 +02:00
github-actions[bot] 3d4697b34a publish new versions (#417)
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-06-30 00:15:29 +02:00
Thibault 9174b808dc [persisted scope] fix: handle recursive directory correctly (#455)
* fix: use correct functions to allow/forbid
Without changing the data structure

* fix: wrong type passed when passing path by ref

* fix: remove '**' before allowing pattern to no trash the scope

* fmt: run fmt

* fix: Remove trailling '*' for non-recursive directories

* fix: remove superfluous asteriks recursively

* info: add changefile

* fix: remove unwated yarn.lock

* fix: simplify directories' fix and apply it to forbid_path too.

* fix: simplify path to str in fix_directory

* don't convert path back to str

* Update persisted-scope-fix-handle-glob-directories.md

---------

Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2023-06-29 23:23:08 +02:00
NaokiM03 a305ad3ddb chore(fs-watch) Update Usage (#451) 2023-06-22 11:29:08 +02:00
Simon Hyll 5fd597ddaf docs: added banners and icons (#443)
* added banners and icons

* fix: formatting
2023-06-20 14:55:14 +03:00
Duke Jones 7b9d7a1d88 docs(websocket): fix readme example (#447) 2023-06-20 08:57:13 +02:00
Amr Bashir 56d455d343 fix(updater): fix nsis updater unable to launch installers requiring elevation (#444)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-06-19 20:58:14 -03:00
Lucas Fernandes Nogueira a79d6d94bd feat(window): add option to disable controls (#406)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2023-06-19 11:14:38 -03:00
Lucas Fernandes Nogueira 83abea3cae feat(window): add is_focused API (#407) 2023-06-19 09:46:22 -03:00
Lucas Fernandes Nogueira 0417b7ad60 chore: add missing banners (#442) 2023-06-19 04:30:18 -07:00
Lucas Fernandes Nogueira 1cb831183c feat(updater): backport changes from tauri v1 (#405) 2023-06-18 07:36:39 -03:00
Amr Bashir db7f4f9a41 refactor(os): refactor EOL const (#427)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-06-18 07:35:07 -03:00
Lucas Fernandes Nogueira c8c3191565 feat(window): add setEffects API (#392) 2023-06-18 07:21:27 -03:00
Amr Bashir 2fc420ba37 feat(window): add incognito option (#418)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-06-18 07:19:04 -03:00
Amr Bashir c81dff292a fix(notification): remove default notification sound on Windows (#440) 2023-06-18 07:18:20 -03:00
Lucas Fernandes Nogueira 32c2a441c3 feat: update to 2.0.0-alpha.10 (#441) 2023-06-17 18:54:35 -03:00
Lucas Fernandes Nogueira 9359b5b138 fix(examples): adjust layout for iOS (#439) 2023-06-16 08:05:55 -07:00
renovate[bot] c4d2c8c693 fix(deps): update rust crate iota-crypto to 0.21 (#438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 14:52:07 +02:00
Amr Bashir 84b3612393 fix(window-state): port fixes from v1 (#436)
* fix(window-state): correctly set decoration state if no saved state exists, fixes #421 (#424)

* fix(window-state): propagate promise (#435)

closes #432

* fix(window-state): manual default implentation (#425)

* fix(window-state): manual default implentation, closes #421

* Update lib.rs

* change file

* generated files

* fix symlinks?

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-06-13 23:30:39 +03:00
amrbashir be2a90b7e2 chore: remove unneeded change file 2023-06-13 15:56:09 +03:00
Amr Bashir 417c85a2dd fix(window-state): manual default implentation (#425)
* fix(window-state): manual default implentation, closes #421

* Update lib.rs
2023-06-13 15:48:10 +03:00
Amr Bashir 617cf38069 fix(window-state): propagate promise (#435)
closes #432
2023-06-13 15:47:55 +03:00
Ludea 6ad221ed36 fix(stronghold): return null if there is no record (#129)
* [stronghold] return null if there is no record

* Return value

* return statement

* prettier

* fix function signature

* fix if condition

* simplify condition

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-06-12 19:26:08 +02:00
Fabian-Lars 0984fc8374 chore: Add branch to install instructions that use git (#433) 2023-06-12 11:20:59 +02:00
Amr Bashir c73049d3ed fix: remove tsconfig symlink (#429)
* fix: remove tsconfig symlink

* one more tsconfig
2023-06-09 03:17:53 +03:00
Fabian-Lars 523bcdc528 fix(window-state): correctly set decoration state if no saved state exists, fixes #421 (#424) 2023-06-07 15:19:29 +03:00
Amr Bashir 1091d6d6ac feat(os): refactor and improvemnts (#419) 2023-06-07 08:13:31 -03:00
Alexandre Dang ea63b40224 fix(stronghold): change wrong argument name for remove (#422) 2023-06-07 08:09:43 -03:00
github-actions[bot] 91ffc01a91 Publish New Versions (v2) (#402)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2023-06-06 09:31:55 -03:00
Lucas Nogueira 0413ed3ce6 Merge remote-tracking branch 'origin/v1' into v2 2023-06-06 09:24:49 -03:00
Lucas Fernandes Nogueira b3d7d11ae3 fix(stronghold): remove constructor, add static load function (#416) 2023-06-06 08:50:05 -03:00
Fabian-Lars d8b4aca69f fix(notification): Fix init.js script for use without global tauri object. (#414) 2023-06-04 13:36:49 +02:00
renovate[bot] 29bf8a2ab4 chore(deps): update dependency eslint-config-standard-with-typescript to v35 (#412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 13:48:49 +02:00
Fabian-Lars 393667b547 chore: update pnpm version to 7.33 (#413)
* chore: update pnpm version to 7.33

* fmt
2023-06-02 13:30:44 +02:00
Lucas Fernandes Nogueira cf5864266e chore(window): fix package name on documentation (#408) 2023-05-27 09:20:09 -03:00
Lucas Fernandes Nogueira 0f480d0985 fix(tests): backport updater test fix from tauri (#404) 2023-05-27 04:39:54 -07:00
Ngo Iok Ui (Wu Yu Wei) a7cba0dac7 Merge pull request #401 from tauri-apps/feat/notification-sound
feat(notification): play default sound on Windows
2023-05-25 11:01:16 +08:00
Lucas Nogueira 7d71ad4e58 feat(notification): play default sound on WIndows
Ref https://github.com/tauri-apps/tauri/pull/6680
2023-05-24 16:03:50 -03:00
982 changed files with 60721 additions and 15736 deletions
+57
View File
@@ -0,0 +1,57 @@
---
"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
---
Update to tauri beta.
+50 -50
View File
@@ -38,20 +38,21 @@
"manager": "rust",
"publish": false,
"dependencies": [
"app",
"barcode-scanner",
"biometric",
"log-plugin",
"cli",
"clipboard",
"clipboard-manager",
"dialog",
"fs",
"global-shortcut",
"http",
"nfc",
"notification",
"os",
"process",
"shell",
"updater",
"window"
"updater"
]
},
"api-example-js": {
@@ -59,32 +60,31 @@
"manager": "javascript",
"publish": false,
"dependencies": [
"app-js",
"barcode-scanner-js",
"biometric-js",
"log-js",
"cli-js",
"clipboard-js",
"clipboard-manager-js",
"dialog-js",
"fs-js",
"global-shortcut-js",
"http-js",
"nfc-js",
"notification-js",
"os-js",
"process-js",
"shell-js",
"updater-js",
"window-js"
]
"updater-js"
],
"postversion": "pnpm install --no-frozen-lockfile"
},
"app": {
"path": "./plugins/app",
"manager": "rust"
"deep-link-example-js": {
"path": "./plugins/deep-link/examples/app",
"manager": "javascript",
"publish": false,
"dependencies": ["deep-link-js"],
"postversion": "pnpm install --no-frozen-lockfile"
},
"app-js": {
"path": "./plugins/app",
"manager": "javascript"
},
"authenticator": {
"path": "./plugins/authenticator",
"manager": "rust"
@@ -93,7 +93,6 @@
"path": "./plugins/authenticator",
"manager": "javascript"
},
"autostart": {
"path": "./plugins/autostart",
"manager": "rust"
@@ -102,7 +101,22 @@
"path": "./plugins/autostart",
"manager": "javascript"
},
"barcode-scanner": {
"path": "./plugins/barcode-scanner",
"manager": "rust"
},
"barcode-scanner-js": {
"path": "./plugins/barcode-scanner",
"manager": "javascript"
},
"biometric": {
"path": "./plugins/biometric",
"manager": "rust"
},
"biometric-js": {
"path": "./plugins/biometric",
"manager": "javascript"
},
"cli": {
"path": "./plugins/cli",
"manager": "rust"
@@ -111,7 +125,6 @@
"path": "./plugins/cli",
"manager": "javascript"
},
"clipboard-manager": {
"path": "./plugins/clipboard-manager",
"manager": "rust"
@@ -120,7 +133,14 @@
"path": "./plugins/clipboard-manager",
"manager": "javascript"
},
"deep-link": {
"path": "./plugins/deep-link",
"manager": "rust"
},
"deep-link-js": {
"path": "./plugins/deep-link",
"manager": "javascript"
},
"fs": {
"path": "./plugins/fs",
"manager": "rust"
@@ -129,7 +149,6 @@
"path": "./plugins/fs",
"manager": "javascript"
},
"dialog": {
"path": "./plugins/dialog",
"manager": "rust",
@@ -139,7 +158,6 @@
"path": "./plugins/dialog",
"manager": "javascript"
},
"global-shortcut": {
"path": "./plugins/global-shortcut",
"manager": "rust"
@@ -148,7 +166,6 @@
"path": "./plugins/global-shortcut",
"manager": "javascript"
},
"http": {
"path": "./plugins/http",
"manager": "rust",
@@ -158,12 +175,10 @@
"path": "./plugins/http",
"manager": "javascript"
},
"localhost": {
"path": "./plugins/localhost",
"manager": "rust"
},
"log-plugin": {
"path": "./plugins/log",
"manager": "rust"
@@ -172,7 +187,14 @@
"path": "./plugins/log",
"manager": "javascript"
},
"nfc": {
"path": "./plugins/nfc",
"manager": "rust"
},
"nfc-js": {
"path": "./plugins/nfc",
"manager": "javascript"
},
"notification": {
"path": "./plugins/notification",
"manager": "rust"
@@ -181,7 +203,6 @@
"path": "./plugins/notification",
"manager": "javascript"
},
"os": {
"path": "./plugins/os",
"manager": "rust"
@@ -190,13 +211,11 @@
"path": "./plugins/os",
"manager": "javascript"
},
"persisted-scope": {
"path": "./plugins/persisted-scope",
"manager": "rust",
"dependencies": ["fs"]
},
"positioner": {
"path": "./plugins/positioner",
"manager": "rust"
@@ -205,7 +224,6 @@
"path": "./plugins/positioner",
"manager": "javascript"
},
"process": {
"path": "./plugins/process",
"manager": "rust"
@@ -214,7 +232,6 @@
"path": "./plugins/process",
"manager": "javascript"
},
"shell": {
"path": "./plugins/shell",
"manager": "rust"
@@ -223,12 +240,10 @@
"path": "./plugins/shell",
"manager": "javascript"
},
"single-instance": {
"path": "./plugins/single-instance",
"manager": "rust"
},
"sql": {
"path": "./plugins/sql",
"manager": "rust",
@@ -258,7 +273,6 @@
"path": "./plugins/sql",
"manager": "javascript"
},
"store": {
"path": "./plugins/store",
"manager": "rust"
@@ -267,7 +281,6 @@
"path": "./plugins/store",
"manager": "javascript"
},
"stronghold": {
"path": "./plugins/stronghold",
"manager": "rust"
@@ -276,7 +289,6 @@
"path": "./plugins/stronghold",
"manager": "javascript"
},
"updater": {
"path": "./plugins/updater",
"manager": "rust"
@@ -285,7 +297,6 @@
"path": "./plugins/updater",
"manager": "javascript"
},
"upload": {
"path": "./plugins/upload",
"manager": "rust"
@@ -294,7 +305,6 @@
"path": "./plugins/upload",
"manager": "javascript"
},
"websocket": {
"path": "./plugins/websocket",
"manager": "rust"
@@ -303,16 +313,6 @@
"path": "./plugins/websocket",
"manager": "javascript"
},
"window": {
"path": "./plugins/window",
"manager": "rust"
},
"window-js": {
"path": "./plugins/window",
"manager": "javascript"
},
"window-state": {
"path": "./plugins/window-state",
"manager": "rust"
+32
View File
@@ -0,0 +1,32 @@
---
"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
---
Update MSRV to 1.75.
+6 -2
View File
@@ -1,4 +1,8 @@
{
"tag": "alpha",
"changes": [".changes/persisted-scope-fix-oom.md", ".changes/v2-alpha.md"]
"tag": "beta",
"changes": [
".changes/beta.md",
".changes/msrv-1.75.md",
".changes/tauri-beta-4.md"
]
}
+57
View File
@@ -0,0 +1,57 @@
---
"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
---
Update to tauri beta.4.
-53
View File
@@ -1,53 +0,0 @@
---
"app": major
"app-js": major
"authenticator": major
"authenticator-js": major
"autostart": major
"autostart-js": major
"cli": major
"cli-js": major
"clipboard-manager": major
"clipboard-manager-js": major
"dialog": major
"dialog-js": major
"fs": major
"fs-js": major
"global-shortcut": major
"global-shortcut-js": major
"http": major
"http-js": major
"localhost": major
"log-plugin": major
"log-js": major
"notification": major
"notification-js": major
"os": major
"os-js": major
"persisted-scope": major
"positioner": major
"positioner-js": major
"process": major
"process-js": major
"shell": major
"shell-js": major
"single-instance": major
"sql": major
"sql-js": major
"store": major
"store-js": major
"stronghold": major
"stronghold-js": major
"updater": major
"updater-js": major
"upload": major
"upload-js": major
"websocket": major
"websocket-js": major
"window": major
"window-js": major
"window-state": major
"window-state-js": major
---
First v2 alpha release!
+4 -1
View File
@@ -1,5 +1,8 @@
target
node_modules
dist
build/
dist-js
api-iife.js
api-iife.js
init-iife.js
init.js
+1 -1
View File
@@ -7,7 +7,7 @@
"prettier",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:security/recommended"
"plugin:security/recommended-legacy"
],
"overrides": [],
"parser": "@typescript-eslint/parser",
+31
View File
@@ -0,0 +1,31 @@
<svg class="crabnebula-logo" width="100%" height="100%" viewBox="0 0 1204 210" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
xml:space="preserve" xmlns:serif="http://www.serif.com/"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<style>
.crabnebula-logo path,
.crabnebula-logo rect {
fill: #001e42;
}
@media (prefers-color-scheme: dark) {
.crabnebula-logo path, .crabnebula-logo rect {
fill: #fff;
}
}
html[data-color-mode="dark"] .crabnebula-logo path,
html[data-color-mode="dark"] .crabnebula-logo rect {
fill: #fff;
}
</style>
<path d="M351.903,162.334C344.288,162.334 337.123,160.881 330.41,157.975C323.696,155.069 317.834,151.11 312.824,146.099C307.914,141.089 304.006,135.276 301.101,128.662C298.195,121.948 296.742,114.783 296.742,107.167C296.742,99.55 298.195,92.435 301.101,85.821C304.006,79.107 307.914,73.244 312.824,68.234C317.834,63.223 323.696,59.265 330.41,56.358C337.123,53.452 344.288,51.999 351.903,51.999C357.414,51.999 362.675,52.701 367.685,54.103C372.795,55.507 377.455,57.511 381.663,60.116C385.972,62.622 389.83,65.678 393.237,69.286C396.644,72.793 399.499,76.752 401.804,81.161L380.762,92.586C377.756,87.174 373.848,82.915 369.038,79.808C364.328,76.702 358.617,75.148 351.903,75.148C347.494,75.148 343.386,76 339.578,77.704C335.871,79.407 332.614,81.762 329.809,84.769C327.003,87.675 324.798,91.082 323.195,94.991C321.592,98.799 320.79,102.857 320.79,107.167C320.79,111.476 321.592,115.584 323.195,119.493C324.798,123.301 327.003,126.708 329.809,129.715C332.614,132.621 335.871,134.926 339.578,136.629C343.386,138.333 347.494,139.185 351.903,139.185C358.617,139.185 364.328,137.631 369.038,134.525C373.848,131.418 377.756,127.159 380.762,121.748L401.804,133.172C399.499,137.581 396.644,141.59 393.237,145.198C389.83,148.705 385.972,151.762 381.663,154.367C377.455,156.872 372.795,158.827 367.685,160.23C362.675,161.633 357.414,162.334 351.903,162.334Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M413.821,85.37L436.517,85.37L436.517,96.644C437.72,93.337 439.924,90.481 443.131,88.076C446.437,85.671 450.195,84.468 454.403,84.468C455.506,84.468 456.658,84.518 457.86,84.619C459.063,84.719 460.366,84.969 461.768,85.37L461.768,108.369C460.065,107.768 458.412,107.317 456.808,107.016C455.205,106.716 453.502,106.565 451.698,106.565C446.788,106.565 443.03,108.269 440.425,111.676C437.82,115.083 436.517,119.493 436.517,124.904L436.517,160.53L413.821,160.53L413.821,85.37Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M502.161,162.184C497.251,162.184 492.642,161.132 488.333,159.027C484.125,156.923 480.467,154.117 477.361,150.609C474.255,147.001 471.8,142.843 469.996,138.133C468.193,133.322 467.291,128.261 467.291,122.95C467.291,117.639 468.193,112.628 469.996,107.918C471.8,103.108 474.255,98.949 477.361,95.442C480.467,91.834 484.125,88.978 488.333,86.873C492.642,84.769 497.251,83.717 502.161,83.717C504.666,83.717 506.971,84.017 509.075,84.619C511.28,85.12 513.234,85.821 514.937,86.723C516.741,87.625 518.244,88.627 519.446,89.729C520.749,90.832 521.801,91.884 522.603,92.886L522.603,85.37L545.299,85.37L545.299,160.53L522.603,160.53L522.603,153.014C521.801,154.016 520.749,155.069 519.446,156.171C518.244,157.273 516.741,158.275 514.937,159.177C513.234,160.079 511.28,160.781 509.075,161.282C506.971,161.883 504.666,162.184 502.161,162.184ZM507.272,141.59C512.382,141.59 516.49,139.836 519.597,136.329C522.803,132.821 524.406,128.362 524.406,122.95C524.406,117.539 522.803,113.079 519.597,109.572C516.49,106.064 512.382,104.31 507.272,104.31C502.161,104.31 498.003,106.064 494.796,109.572C491.69,113.079 490.137,117.539 490.137,122.95C490.137,128.362 491.69,132.821 494.796,136.329C498.003,139.836 502.161,141.59 507.272,141.59Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M607.116,162.184C604.611,162.184 602.256,161.883 600.051,161.282C597.947,160.781 595.993,160.079 594.19,159.177C592.486,158.275 590.983,157.273 589.681,156.171C588.378,155.069 587.376,154.016 586.674,153.014L586.674,160.53L563.979,160.53L563.979,47.79L586.674,47.79L586.674,92.886C587.376,91.884 588.378,90.832 589.681,89.729C590.983,88.627 592.486,87.625 594.19,86.723C595.993,85.821 597.947,85.12 600.051,84.619C602.256,84.017 604.611,83.717 607.116,83.717C612.026,83.717 616.585,84.769 620.793,86.873C625.102,88.978 628.81,91.834 631.916,95.442C635.022,98.949 637.477,103.108 639.281,107.918C641.084,112.628 641.986,117.639 641.986,122.95C641.986,128.261 641.084,133.322 639.281,138.133C637.477,142.843 635.022,147.001 631.916,150.609C628.81,154.117 625.102,156.923 620.793,159.027C616.585,161.132 612.026,162.184 607.116,162.184ZM602.005,141.59C607.116,141.59 611.224,139.836 614.33,136.329C617.537,132.821 619.14,128.362 619.14,122.95C619.14,117.539 617.537,113.079 614.33,109.572C611.224,106.064 607.116,104.31 602.005,104.31C596.895,104.31 592.737,106.064 589.53,109.572C586.424,113.079 584.871,117.539 584.871,122.95C584.871,128.362 586.424,132.821 589.53,136.329C592.737,139.836 596.895,141.59 602.005,141.59Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M732.106,160.53L680.101,94.54L680.101,160.53L656.203,160.53L656.203,53.803L676.795,53.803L728.649,119.793L728.649,53.803L752.698,53.803L752.698,160.53L732.106,160.53Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M806.852,162.184C801.341,162.184 796.13,161.282 791.22,159.478C786.411,157.674 782.202,155.069 778.595,151.661C774.988,148.254 772.132,144.145 770.028,139.335C767.923,134.425 766.871,128.963 766.871,122.95C766.871,117.338 767.823,112.177 769.727,107.467C771.731,102.657 774.487,98.498 777.994,94.991C781.601,91.483 785.809,88.727 790.619,86.723C795.429,84.719 800.69,83.717 806.401,83.717C811.311,83.717 816.021,84.518 820.53,86.122C825.139,87.625 829.147,89.93 832.554,93.036C835.961,96.043 838.666,99.851 840.67,104.461C842.775,108.97 843.827,114.282 843.827,120.395C843.827,121.397 843.777,122.549 843.677,123.852C843.677,125.055 843.576,126.558 843.376,128.362L788.816,128.362C789.517,132.871 791.671,136.228 795.279,138.433C798.886,140.538 802.844,141.59 807.153,141.59C811.562,141.59 815.319,140.738 818.425,139.034C821.632,137.231 823.937,135.226 825.339,133.022L842.173,145.649C838.666,150.659 833.857,154.668 827.744,157.674C821.732,160.681 814.768,162.184 806.852,162.184ZM821.281,113.48C820.279,109.471 818.275,106.615 815.269,104.912C812.263,103.108 809.107,102.206 805.8,102.206C804.096,102.206 802.393,102.406 800.69,102.807C798.986,103.208 797.383,103.859 795.88,104.761C794.377,105.663 793.024,106.816 791.822,108.219C790.719,109.622 789.918,111.376 789.417,113.48L821.281,113.48Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M901.265,162.184C898.76,162.184 896.405,161.883 894.201,161.282C892.097,160.781 890.143,160.079 888.339,159.177C886.636,158.275 885.133,157.273 883.83,156.171C882.527,155.069 881.525,154.016 880.824,153.014L880.824,160.53L858.128,160.53L858.128,47.79L880.824,47.79L880.824,92.886C881.525,91.884 882.527,90.832 883.83,89.729C885.133,88.627 886.636,87.625 888.339,86.723C890.143,85.821 892.097,85.12 894.201,84.619C896.405,84.017 898.76,83.717 901.265,83.717C906.175,83.717 910.734,84.769 914.943,86.873C919.252,88.978 922.959,91.834 926.065,95.442C929.172,98.949 931.627,103.108 933.43,107.918C935.234,112.628 936.136,117.639 936.136,122.95C936.136,128.261 935.234,133.322 933.43,138.133C931.627,142.843 929.172,147.001 926.065,150.609C922.959,154.117 919.252,156.923 914.943,159.027C910.734,161.132 906.175,162.184 901.265,162.184ZM896.155,141.59C901.265,141.59 905.374,139.836 908.48,136.329C911.686,132.821 913.29,128.362 913.29,122.95C913.29,117.539 911.686,113.079 908.48,109.572C905.374,106.064 901.265,104.31 896.155,104.31C891.045,104.31 886.886,106.064 883.68,109.572C880.573,113.079 879.02,117.539 879.02,122.95C879.02,128.362 880.573,132.821 883.68,136.329C886.886,139.836 891.045,141.59 896.155,141.59Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M977.812,162.184C968.493,162.184 961.429,159.077 956.619,152.864C951.81,146.651 949.405,138.433 949.405,128.211L949.405,85.37L972.101,85.37L972.101,124.303C972.101,129.815 972.952,134.074 974.656,137.08C976.459,140.087 979.466,141.59 983.674,141.59C987.983,141.59 991.39,140.037 993.895,136.93C996.5,133.823 997.803,128.813 997.803,121.898L997.803,85.37L1020.5,85.37L1020.5,160.53L997.803,160.53L997.803,152.864C995.999,155.469 993.444,157.674 990.137,159.478C986.83,161.282 982.722,162.184 977.812,162.184Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<rect x="1039.11" y="47.79" width="22.701" height="112.74" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M1110.86,162.184C1105.95,162.184 1101.34,161.132 1097.03,159.027C1092.83,156.923 1089.17,154.117 1086.06,150.609C1082.96,147.001 1080.5,142.843 1078.7,138.133C1076.89,133.322 1075.99,128.261 1075.99,122.95C1075.99,117.639 1076.89,112.628 1078.7,107.918C1080.5,103.108 1082.96,98.949 1086.06,95.442C1089.17,91.834 1092.83,88.978 1097.03,86.873C1101.34,84.769 1105.95,83.717 1110.86,83.717C1113.37,83.717 1115.67,84.017 1117.78,84.619C1119.98,85.12 1121.94,85.821 1123.64,86.723C1125.44,87.625 1126.95,88.627 1128.15,89.729C1129.45,90.832 1130.5,91.884 1131.3,92.886L1131.3,85.37L1154,85.37L1154,160.53L1131.3,160.53L1131.3,153.014C1130.5,154.016 1129.45,155.069 1128.15,156.171C1126.95,157.273 1125.44,158.275 1123.64,159.177C1121.94,160.079 1119.98,160.781 1117.78,161.282C1115.67,161.883 1113.37,162.184 1110.86,162.184ZM1115.97,141.59C1121.08,141.59 1125.19,139.836 1128.3,136.329C1131.5,132.821 1133.11,128.362 1133.11,122.95C1133.11,117.539 1131.5,113.079 1128.3,109.572C1125.19,106.064 1121.08,104.31 1115.97,104.31C1110.86,104.31 1106.7,106.064 1103.5,109.572C1100.39,113.079 1098.84,117.539 1098.84,122.95C1098.84,128.362 1100.39,132.821 1103.5,136.329C1106.7,139.836 1110.86,141.59 1115.97,141.59Z" style="fill-rule:nonzero;stroke:black;stroke-width:0.55px;"/>
<path d="M146.48,54.585C119.724,89.866 119.878,134.941 146.826,155.264C153.908,160.605 162.136,163.705 170.903,164.732C146.032,184.934 117.382,191.203 98.037,178.045C71.507,160 72.524,112.249 100.309,71.391C123.51,37.273 158.039,18.749 184.247,24.072C170.404,30.195 157.116,40.561 146.48,54.585ZM181.638,99.643C169.141,111.453 154.859,119.304 142.801,121.916C149.921,147.367 177.29,149.323 177.29,149.323C177.29,149.323 193.578,145.578 205.877,117.941C216.005,95.183 215.122,71.668 204.914,59.7C204.065,71.267 195.731,86.324 181.638,99.643Z" style="stroke:black;stroke-width:0.55px;"/>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

+2
View File
@@ -37,3 +37,5 @@ jobs:
- uses: rustsec/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/tauri-apps/plugins-workspace/issues/774
ignore: ${{ github.event_name != 'schedule' && 'RUSTSEC-2023-0071' || '' }}
@@ -25,10 +25,6 @@ jobs:
id: filter
with:
filters: |
app:
- .github/workflows/check-generated-files.yml
- plugins/app/guest-js/**
- plugins/app/src/api-iife.js
authenticator:
- .github/workflows/check-generated-files.yml
- plugins/authenticator/guest-js/**
@@ -109,10 +105,6 @@ jobs:
- .github/workflows/check-generated-files.yml
- plugins/websocket/guest-js/**
- plugins/websocket/src/api-iife.js
window:
- .github/workflows/check-generated-files.yml
- plugins/window/guest-js/**
- plugins/window/src/api-iife.js
window-state:
- .github/workflows/check-generated-files.yml
- plugins/window-state/guest-js/**
+54
View File
@@ -0,0 +1,54 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: integration tests
on:
push:
branches:
- v1
- v2
paths:
- ".github/workflows/integration-tests.yml"
- "plugins/updater/src/**"
pull_request:
branches:
- v1
- v2
paths:
- ".github/workflows/integration-tests.yml"
- "plugins/updater/src/**"
jobs:
run-integration-tests:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: install stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev libfuse2
- uses: Swatinem/rust-cache@v2
- name: install Tauri CLI
run: cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch dev
- name: run integration tests
run: cargo test --test '*' -- --ignored
-12
View File
@@ -41,9 +41,6 @@ jobs:
id: filter
with:
filters: |
tauri-plugin-app:
- .github/workflows/lint-rust.yml
- plugins/app/**
tauri-plugin-authenticator:
- .github/workflows/lint-rust.yml
- plugins/authenticator/**
@@ -116,9 +113,6 @@ jobs:
tauri-plugin-websocket:
- .github/workflows/lint-rust.yml
- plugins/websocket/**
tauri-plugin-window:
- .github/workflows/lint-rust.yml
- plugins/window/**
tauri-plugin-window-state:
- .github/workflows/lint-rust.yml
- plugins/window-state/**
@@ -155,10 +149,6 @@ jobs:
if: matrix.package != 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings
- name: clippy ${{ matrix.package }} --all-features
if: ${{ !contains(fromJSON('["tauri-plugin-http", "tauri-plugin-upload", "tauri-plugin-updater", "tauri-plugin-websocket", "tauri-plugin-sql"]'), matrix.package) }}
run: cargo clippy --package ${{ matrix.package }} --all-targets --all-features -- -D warnings
- name: clippy ${{ matrix.package }} mysql
if: matrix.package == 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features mysql -- -D warnings
@@ -169,8 +159,6 @@ jobs:
fmt:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
+23 -37
View File
@@ -43,9 +43,6 @@ jobs:
id: filter
with:
filters: |
tauri-plugin-app:
- .github/workflows/test-rust.yml
- plugins/app/**
tauri-plugin-authenticator:
- .github/workflows/test-rust.yml
- plugins/authenticator/**
@@ -118,9 +115,6 @@ jobs:
tauri-plugin-websocket:
- .github/workflows/test-rust.yml
- plugins/websocket/**
tauri-plugin-window:
- .github/workflows/test-rust.yml
- plugins/window/**
tauri-plugin-window-state:
- .github/workflows/test-rust.yml
- plugins/window-state/**
@@ -136,31 +130,31 @@ jobs:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
cross: false,
runner: 'cargo',
command: "test",
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
cross: false,
runner: 'cargo',
command: "test",
}
- {
target: x86_64-apple-darwin,
os: macos-latest,
cross: false,
runner: 'cargo',
command: "test",
}
- {
target: aarch64-apple-ios,
os: macos-latest,
cross: false,
runner: 'cargo',
command: "build",
}
- {
target: aarch64-linux-android,
os: ubuntu-latest,
cross: true,
runner: 'cross',
command: "build",
}
@@ -181,46 +175,38 @@ jobs:
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.65.0
- uses: dtolnay/rust-toolchain@1.75.0
with:
targets: ${{ matrix.platform.target }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.package }}
key: cache-${{ matrix.package }}-${{ matrix.platform.target }}
- name: create dummy dist
working-directory: examples/api
run: mkdir dist
- name: test ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql'
uses: actions-rs/cargo@v1
with:
use-cross: ${{ matrix.platform.cross }}
command: ${{ matrix.platform.command }}
args: --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets
- name: install cross
if: ${{ matrix.platform.runner == 'cross' }}
run: cargo +stable install cross --git https://github.com/cross-rs/cross
- name: test ${{ matrix.package }} --all-features
if: ${{ !contains(fromJSON('["tauri-plugin-http", "tauri-plugin-upload", "tauri-plugin-updater", "tauri-plugin-websocket", "tauri-plugin-sql"]'), matrix.package) }}
uses: actions-rs/cargo@v1
with:
use-cross: ${{ matrix.platform.cross }}
command: ${{ matrix.platform.command }}
args: --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features
- name: test ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql' && matrix.package != 'tauri-plugin-http'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features
- name: test ${{ matrix.package }}
if: matrix.package == 'tauri-plugin-http'
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'
uses: actions-rs/cargo@v1
with:
use-cross: ${{ matrix.platform.cross }}
command: ${{ matrix.platform.command }}
args: --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features mysql
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'
uses: actions-rs/cargo@v1
with:
use-cross: ${{ matrix.platform.cross }}
command: ${{ matrix.platform.command }}
args: --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features postgres
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features postgres
+2 -2
View File
@@ -1,4 +1,4 @@
target
node_modules
dist
dist-js
dist-js
dist
+1
View File
@@ -0,0 +1 @@
auto-install-peers=true
+5 -1
View File
@@ -5,4 +5,8 @@ dist-js
pnpm-lock.yaml
Cargo.lock
.build
api-iife.js
build
api-iife.js
init-iife.js
intermediates/
*schema.json
+14 -5
View File
@@ -9,7 +9,11 @@ import readline from "readline";
const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: MIT`;
const ignoredLicense = "// Copyright 2021 Jonas Kruckenberg";
const ignoredLicenses = [
"// Copyright 2021 Flavio Oliveira",
"// Copyright 2021 Jonas Kruckenberg",
"// Copyright 2018-2023 the Deno authors.",
];
const extensions = [".rs", ".js", ".ts", ".yml", ".swift", ".kt"];
const ignore = [
@@ -21,12 +25,15 @@ const ignore = [
"dist-js",
".svelte-kit",
"api-iife.js",
"init-iife.js",
".build",
"notify_rust",
];
async function checkFile(file) {
if (
extensions.some((e) => file.endsWith(e)) &&
!ignore.some((i) => file.endsWith(i))
!ignore.some((i) => file.includes(`${path.sep}${i}`))
) {
const fileStream = fs.createReadStream(file);
const rl = readline.createInterface({
@@ -42,7 +49,7 @@ async function checkFile(file) {
line.length === 0 ||
line.startsWith("#!") ||
line.startsWith("// swift-tools-version:") ||
line === ignoredLicense
ignoredLicenses.includes(line)
) {
continue;
}
@@ -70,7 +77,9 @@ async function checkFile(file) {
async function check(src) {
const missingHeader = [];
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
for (const entry of fs.readdirSync(src, {
withFileTypes: true,
})) {
const p = path.join(src, entry.name);
if (entry.isSymbolicLink() || ignore.includes(entry.name)) {
@@ -116,6 +125,6 @@ if (files.length > 0) {
console.log(missing.join("\n"));
process.exit(1);
}
}
},
);
}
+1 -1
View File
@@ -52,7 +52,7 @@ https.get(url, options, (response) => {
}
} else if (kind === "npm") {
const versions = Object.keys(data.versions || {}).filter((v) =>
v.startsWith(target)
v.startsWith(target),
);
console.log(versions[versions.length - 1] || "0.0.0");
}
Generated
+3443 -1765
View File
File diff suppressed because it is too large Load Diff
+13 -5
View File
@@ -1,20 +1,28 @@
[workspace]
members = ["plugins/*", "plugins/*/tests/*", "examples/*/src-tauri"]
members = [
"plugins/*",
"plugins/*/tests/*",
"plugins/*/examples/*/src-tauri",
"examples/*/src-tauri",
]
resolver = "2"
[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
log = "0.4"
tauri = "2.0.0-alpha.9"
tauri-build = "2.0.0-alpha.5"
tauri = "2.0.0-beta.4"
tauri-build = "2.0.0-beta.3"
tauri-plugin = "2.0.0-beta.3"
serde_json = "1"
thiserror = "1"
url = "2"
schemars = "0.8"
[workspace.package]
edition = "2021"
authors = [ "Tauri Programme within The Commons Conservancy" ]
authors = ["Tauri Programme within The Commons Conservancy"]
license = "Apache-2.0 OR MIT"
rust-version = "1.65"
rust-version = "1.75"
# default to small, optimized release binaries
[profile.release]
+47 -16
View File
@@ -1,19 +1,50 @@
## Plugins Found Here
| | | Win | Mac | Lin | iOS | And |
| ------------------------------------------ | ------------------------------------------------------ | --- | --- | --- | --- | --- |
| [authenticator](plugins/authenticator) | Interface with hardware security keys. | ✅ | ✅ | ✅ | ? | ? |
| [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ? | ? |
| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | | ? | ? |
| [log](plugins/log) | Configurable logging. | ✅ | | | ✅ | ✅ |
| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? |
| [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? |
| [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | | ? | ? |
| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? |
| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ? | ? |
| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? |
| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? |
| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? |
| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? |
| | | Win | Mac | Lin | iOS | And |
| ----------------------------------------------- | ------------------------------------------------------ | --- | --- | --- | --- | --- |
| [authenticator](plugins/authenticator) | Interface with hardware security keys. | ✅ | ✅ | ✅ | ? | ? |
| [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. | ? | ? | ? | ✅ | ✅ |
| [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? |
| [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. | ? | ? | ? | ✅ | ✅ |
| [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | | | ✅ |
| [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? |
| [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? |
| [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | | |
| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? |
| [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | | |
| [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. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? |
| [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. | ✅ | ✅ | ✅ | ? | ? |
| [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. | ✅ | ? | ✅ | ? | ? |
| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? |
| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ? | ? |
| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? |
| [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? |
| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? |
| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? |
| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? |
_This repo and all plugins require a Rust version of at least **1.65**_
_This repo and all plugins require a Rust version of at least **1.75**_
## Partners
<table>
<tbody>
<tr>
<td align="center" valign="middle">
<a href="https://crabnebula.dev" target="_blank">
<img src=".github/sponsors/crabnebula.svg" alt="CrabNebula" width="283">
</a>
</td>
</tr>
</tbody>
</table>
For the complete list of sponsors please visit our [website](https://tauri.app#sponsors) and [Open Collective](https://opencollective.com/tauri).
+156
View File
@@ -1,5 +1,161 @@
# Changelog
## \[2.0.0-beta.1]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-beta.1`
- Upgraded to `biometric-js@2.0.0-beta.1`
- Upgraded to `cli-js@2.0.0-beta.1`
- Upgraded to `clipboard-manager-js@2.0.0-beta.1`
- Upgraded to `dialog-js@2.0.0-beta.1`
- Upgraded to `fs-js@2.0.0-beta.1`
- Upgraded to `global-shortcut-js@2.0.0-beta.1`
- Upgraded to `http-js@2.0.0-beta.1`
- Upgraded to `log-js@2.0.0-beta.1`
- Upgraded to `nfc-js@2.0.0-beta.1`
- Upgraded to `notification-js@2.0.0-beta.1`
- Upgraded to `os-js@2.0.0-beta.1`
- Upgraded to `process-js@2.0.0-beta.1`
- Upgraded to `shell-js@2.0.0-beta.1`
- Upgraded to `updater-js@2.0.0-beta.1`
## \[2.0.0-beta.0]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-beta.0`
- Upgraded to `biometric-js@2.0.0-beta.0`
- Upgraded to `cli-js@2.0.0-beta.0`
- Upgraded to `clipboard-manager-js@2.0.0-beta.0`
- Upgraded to `dialog-js@2.0.0-beta.0`
- Upgraded to `fs-js@2.0.0-beta.0`
- Upgraded to `global-shortcut-js@2.0.0-beta.0`
- Upgraded to `http-js@2.0.0-beta.0`
- Upgraded to `log-js@2.0.0-beta.0`
- Upgraded to `nfc-js@2.0.0-beta.0`
- Upgraded to `notification-js@2.0.0-beta.0`
- Upgraded to `os-js@2.0.0-beta.0`
- Upgraded to `process-js@2.0.0-beta.0`
- Upgraded to `shell-js@2.0.0-beta.0`
- Upgraded to `updater-js@2.0.0-beta.0`
## \[2.0.0-alpha.9]
### Dependencies
- Upgraded to `fs-js@2.0.0-alpha.6`
## \[2.0.0-alpha.8]
### Dependencies
- Upgraded to `http-js@2.0.0-alpha.6`
## \[2.0.0-alpha.7]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-alpha.4`
- Upgraded to `cli-js@2.0.0-alpha.5`
- Upgraded to `clipboard-manager-js@2.0.0-alpha.5`
- Upgraded to `dialog-js@2.0.0-alpha.5`
- Upgraded to `fs-js@2.0.0-alpha.5`
- Upgraded to `global-shortcut-js@2.0.0-alpha.5`
- Upgraded to `http-js@2.0.0-alpha.5`
- Upgraded to `log-js@2.0.0-alpha.5`
- Upgraded to `notification-js@2.0.0-alpha.5`
- Upgraded to `os-js@2.0.0-alpha.6`
- Upgraded to `process-js@2.0.0-alpha.5`
- Upgraded to `shell-js@2.0.0-alpha.5`
- Upgraded to `updater-js@2.0.0-alpha.5`
- Upgraded to `biometric-js@2.0.0-alpha.0`
- Upgraded to `nfc-js@2.0.0-alpha.0`
## \[2.0.0-alpha.6]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-alpha.3`
- Upgraded to `cli-js@2.0.0-alpha.4`
- Upgraded to `clipboard-manager-js@2.0.0-alpha.4`
- Upgraded to `dialog-js@2.0.0-alpha.4`
- Upgraded to `fs-js@2.0.0-alpha.4`
- Upgraded to `global-shortcut-js@2.0.0-alpha.4`
- Upgraded to `http-js@2.0.0-alpha.4`
- Upgraded to `log-js@2.0.0-alpha.4`
- Upgraded to `notification-js@2.0.0-alpha.4`
- Upgraded to `os-js@2.0.0-alpha.5`
- Upgraded to `process-js@2.0.0-alpha.4`
- Upgraded to `shell-js@2.0.0-alpha.4`
- Upgraded to `updater-js@2.0.0-alpha.4`
## \[2.0.0-alpha.5]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-alpha.2`
- Upgraded to `cli-js@2.0.0-alpha.3`
- Upgraded to `clipboard-manager-js@2.0.0-alpha.3`
- Upgraded to `dialog-js@2.0.0-alpha.3`
- Upgraded to `fs-js@2.0.0-alpha.3`
- Upgraded to `global-shortcut-js@2.0.0-alpha.3`
- Upgraded to `http-js@2.0.0-alpha.3`
- Upgraded to `log-js@2.0.0-alpha.3`
- Upgraded to `notification-js@2.0.0-alpha.3`
- Upgraded to `os-js@2.0.0-alpha.4`
- Upgraded to `process-js@2.0.0-alpha.3`
- Upgraded to `shell-js@2.0.0-alpha.3`
- Upgraded to `updater-js@2.0.0-alpha.3`
## \[2.0.0-alpha.4]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-alpha.1`
- Upgraded to `cli-js@2.0.0-alpha.2`
- Upgraded to `clipboard-manager-js@2.0.0-alpha.2`
- Upgraded to `dialog-js@2.0.0-alpha.2`
- Upgraded to `fs-js@2.0.0-alpha.2`
- Upgraded to `global-shortcut-js@2.0.0-alpha.2`
- Upgraded to `http-js@2.0.0-alpha.2`
- Upgraded to `log-js@2.0.0-alpha.2`
- Upgraded to `notification-js@2.0.0-alpha.2`
- Upgraded to `os-js@2.0.0-alpha.3`
- Upgraded to `process-js@2.0.0-alpha.2`
- Upgraded to `shell-js@2.0.0-alpha.2`
- Upgraded to `updater-js@2.0.0-alpha.2`
## \[2.0.0-alpha.3]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-alpha.0`
## \[2.0.0-alpha.2]
### Dependencies
- Upgraded to `os-js@2.0.0-alpha.2`
## \[2.0.0-alpha.1]
### Dependencies
- Upgraded to `window-js@2.0.0-alpha.1`
- Upgraded to `fs-js@2.0.0-alpha.1`
- Upgraded to `http-js@2.0.0-alpha.1`
- Upgraded to `os-js@2.0.0-alpha.1`
- Upgraded to `app-js@2.0.0-alpha.1`
- Upgraded to `cli-js@2.0.0-alpha.1`
- Upgraded to `dialog-js@2.0.0-alpha.1`
- Upgraded to `global-shortcut-js@2.0.0-alpha.1`
- Upgraded to `log-js@2.0.0-alpha.1`
- Upgraded to `notification-js@2.0.0-alpha.1`
- Upgraded to `process-js@2.0.0-alpha.1`
- Upgraded to `shell-js@2.0.0-alpha.1`
- Upgraded to `updater-js@2.0.0-alpha.1`
## \[2.0.0-alpha.0]
### Dependencies
+5 -2
View File
@@ -1,8 +1,11 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en" theme="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<title>Svelte + Vite App</title>
</head>
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
+26 -24
View File
@@ -1,7 +1,7 @@
{
"name": "svelte-app",
"private": true,
"version": "2.0.0-alpha.0",
"version": "2.0.0-beta.1",
"type": "module",
"scripts": {
"dev": "vite --clearScreen false",
@@ -9,30 +9,32 @@
"serve": "vite preview"
},
"dependencies": {
"@tauri-apps/api": "2.0.0-alpha.4",
"@zerodevx/svelte-json-view": "0.2.1",
"@tauri-apps/plugin-app": "2.0.0-alpha.0",
"@tauri-apps/plugin-cli": "2.0.0-alpha.0",
"@tauri-apps/plugin-clipboard-manager": "2.0.0-alpha.0",
"@tauri-apps/plugin-dialog": "2.0.0-alpha.0",
"@tauri-apps/plugin-fs": "2.0.0-alpha.0",
"@tauri-apps/plugin-global-shortcut": "2.0.0-alpha.0",
"@tauri-apps/plugin-http": "2.0.0-alpha.0",
"@tauri-apps/plugin-notification": "2.0.0-alpha.0",
"@tauri-apps/plugin-os": "2.0.0-alpha.0",
"@tauri-apps/plugin-process": "2.0.0-alpha.0",
"@tauri-apps/plugin-shell": "2.0.0-alpha.0",
"@tauri-apps/plugin-updater": "2.0.0-alpha.0",
"@tauri-apps/plugin-window": "2.0.0-alpha.0"
"@tauri-apps/api": "2.0.0-beta.2",
"@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.1",
"@tauri-apps/plugin-biometric": "2.0.0-beta.1",
"@tauri-apps/plugin-cli": "2.0.0-beta.1",
"@tauri-apps/plugin-clipboard-manager": "2.0.0-beta.1",
"@tauri-apps/plugin-dialog": "2.0.0-beta.1",
"@tauri-apps/plugin-fs": "2.0.0-beta.1",
"@tauri-apps/plugin-global-shortcut": "2.0.0-beta.1",
"@tauri-apps/plugin-http": "2.0.0-beta.1",
"@tauri-apps/plugin-nfc": "2.0.0-beta.1",
"@tauri-apps/plugin-notification": "2.0.0-beta.1",
"@tauri-apps/plugin-os": "2.0.0-beta.1",
"@tauri-apps/plugin-process": "2.0.0-beta.1",
"@tauri-apps/plugin-shell": "2.0.0-beta.1",
"@tauri-apps/plugin-updater": "2.0.0-beta.1",
"@zerodevx/svelte-json-view": "1.0.7"
},
"devDependencies": {
"@iconify-json/codicon": "^1.1.10",
"@iconify-json/ph": "^1.1.1",
"@sveltejs/vite-plugin-svelte": "^1.0.1",
"@tauri-apps/cli": "2.0.0-alpha.9",
"internal-ip": "^7.0.0",
"svelte": "^3.49.0",
"unocss": "^0.39.3",
"vite": "^3.0.9"
"@iconify-json/codicon": "^1.1.37",
"@iconify-json/ph": "^1.1.8",
"@sveltejs/vite-plugin-svelte": "^3.0.1",
"@tauri-apps/cli": "2.0.0-beta.3",
"@unocss/extractor-svelte": "^0.58.0",
"internal-ip": "^8.0.0",
"svelte": "^4.2.8",
"unocss": "^0.58.0",
"vite": "^5.0.12"
}
}
+4
View File
@@ -4,3 +4,7 @@
# cargo-mobile
.cargo/
gen/schemas/*.json
!gen/schemas/desktop-schema.json
!gen/schemas/mobile-schema.json
+183
View File
@@ -1,5 +1,188 @@
# Changelog
## \[2.0.0-beta.1]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-beta.1`
- Upgraded to `biometric@2.0.0-beta.1`
- Upgraded to `cli@2.0.0-beta.1`
- Upgraded to `clipboard-manager@2.0.0-beta.1`
- Upgraded to `dialog@2.0.0-beta.1`
- Upgraded to `fs@2.0.0-beta.1`
- Upgraded to `global-shortcut@2.0.0-beta.1`
- Upgraded to `http@2.0.0-beta.1`
- Upgraded to `log-plugin@2.0.0-beta.1`
- Upgraded to `nfc@2.0.0-beta.1`
- Upgraded to `notification@2.0.0-beta.1`
- Upgraded to `os@2.0.0-beta.1`
- Upgraded to `process@2.0.0-beta.1`
- Upgraded to `shell@2.0.0-beta.1`
- Upgraded to `updater@2.0.0-beta.1`
## \[2.0.0-beta.0]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-beta.0`
- Upgraded to `biometric@2.0.0-beta.0`
- Upgraded to `cli@2.0.0-beta.0`
- Upgraded to `clipboard-manager@2.0.0-beta.0`
- Upgraded to `dialog@2.0.0-beta.0`
- Upgraded to `fs@2.0.0-beta.0`
- Upgraded to `global-shortcut@2.0.0-beta.0`
- Upgraded to `http@2.0.0-beta.0`
- Upgraded to `log@2.0.0-beta.0`
- Upgraded to `nfc@2.0.0-beta.0`
- Upgraded to `notification@2.0.0-beta.0`
- Upgraded to `os@2.0.0-beta.0`
- Upgraded to `process@2.0.0-beta.0`
- Upgraded to `shell@2.0.0-beta.0`
- Upgraded to `updater@2.0.0-beta.0`
## \[2.0.0-alpha.11]
### Dependencies
- Upgraded to `fs@2.0.0-alpha.7`
- Upgraded to `dialog@2.0.0-alpha.7`
- Upgraded to `http@2.0.0-alpha.9`
## \[2.0.0-alpha.10]
### Dependencies
- Upgraded to `http@2.0.0-alpha.8`
## \[2.0.0-alpha.9]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-alpha.4`
- Upgraded to `cli@2.0.0-alpha.6`
- Upgraded to `clipboard-manager@2.0.0-alpha.6`
- Upgraded to `dialog@2.0.0-alpha.6`
- Upgraded to `fs@2.0.0-alpha.6`
- Upgraded to `global-shortcut@2.0.0-alpha.6`
- Upgraded to `http@2.0.0-alpha.7`
- Upgraded to `log-plugin@2.0.0-alpha.6`
- Upgraded to `notification@2.0.0-alpha.7`
- Upgraded to `os@2.0.0-alpha.6`
- Upgraded to `process@2.0.0-alpha.6`
- Upgraded to `shell@2.0.0-alpha.6`
- Upgraded to `updater@2.0.0-alpha.6`
- Upgraded to `biometric@2.0.0-alpha.0`
- Upgraded to `nfc@2.0.0-alpha.0`
## \[2.0.0-alpha.8]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-alpha.3`
- Upgraded to `cli@2.0.0-alpha.5`
- Upgraded to `clipboard-manager@2.0.0-alpha.5`
- Upgraded to `dialog@2.0.0-alpha.5`
- Upgraded to `fs@2.0.0-alpha.5`
- Upgraded to `global-shortcut@2.0.0-alpha.5`
- Upgraded to `http@2.0.0-alpha.6`
- Upgraded to `log-plugin@2.0.0-alpha.5`
- Upgraded to `notification@2.0.0-alpha.6`
- Upgraded to `os@2.0.0-alpha.5`
- Upgraded to `process@2.0.0-alpha.5`
- Upgraded to `shell@2.0.0-alpha.5`
- Upgraded to `updater@2.0.0-alpha.5`
## \[2.0.0-alpha.7]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-alpha.2`
- Upgraded to `cli@2.0.0-alpha.4`
- Upgraded to `clipboard-manager@2.0.0-alpha.4`
- Upgraded to `dialog@2.0.0-alpha.4`
- Upgraded to `fs@2.0.0-alpha.4`
- Upgraded to `global-shortcut@2.0.0-alpha.4`
- Upgraded to `http@2.0.0-alpha.5`
- Upgraded to `log-plugin@2.0.0-alpha.4`
- Upgraded to `notification@2.0.0-alpha.5`
- Upgraded to `os@2.0.0-alpha.4`
- Upgraded to `process@2.0.0-alpha.4`
- Upgraded to `shell@2.0.0-alpha.4`
- Upgraded to `updater@2.0.0-alpha.4`
## \[2.0.0-alpha.6]
### Dependencies
- Upgraded to `log-plugin@2.0.0-alpha.3`
- Upgraded to `shell@2.0.0-alpha.3`
- Upgraded to `dialog@2.0.0-alpha.3`
- Upgraded to `notification@2.0.0-alpha.4`
- Upgraded to `updater@2.0.0-alpha.3`
- Upgraded to `global-shortcut@2.0.0-alpha.3`
- Upgraded to `barcode-scanner@2.0.0-alpha.1`
- Upgraded to `cli@2.0.0-alpha.3`
- Upgraded to `clipboard-manager@2.0.0-alpha.3`
- Upgraded to `fs@2.0.0-alpha.3`
- Upgraded to `http@2.0.0-alpha.4`
- Upgraded to `os@2.0.0-alpha.3`
- Upgraded to `process@2.0.0-alpha.3`
## \[2.0.0-alpha.5]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-alpha.0`
## \[2.0.0-alpha.4]
### Dependencies
- Upgraded to `http@2.0.0-alpha.3`
- Upgraded to `app@2.0.0-alpha.2`
- Upgraded to `cli@2.0.0-alpha.2`
- Upgraded to `clipboard-manager@2.0.0-alpha.2`
- Upgraded to `dialog@2.0.0-alpha.2`
- Upgraded to `fs@2.0.0-alpha.2`
- Upgraded to `global-shortcut@2.0.0-alpha.2`
- Upgraded to `log-plugin@2.0.0-alpha.2`
- Upgraded to `notification@2.0.0-alpha.3`
- Upgraded to `os@2.0.0-alpha.2`
- Upgraded to `process@2.0.0-alpha.2`
- Upgraded to `shell@2.0.0-alpha.2`
- Upgraded to `updater@2.0.0-alpha.2`
- Upgraded to `window@2.0.0-alpha.2`
## \[2.0.0-alpha.3]
### Dependencies
- Upgraded to `http@2.0.0-alpha.2`
## \[2.0.0-alpha.2]
### Dependencies
- Upgraded to `dialog@2.0.0-alpha.1`
- Upgraded to `window@2.0.0-alpha.1`
- Upgraded to `app@2.0.0-alpha.1`
- Upgraded to `cli@2.0.0-alpha.1`
- Upgraded to `fs@2.0.0-alpha.1`
- Upgraded to `global-shortcut@2.0.0-alpha.1`
- Upgraded to `http@2.0.0-alpha.1`
- Upgraded to `log-plugin@2.0.0-alpha.1`
- Upgraded to `notification@2.0.0-alpha.2`
- Upgraded to `os@2.0.0-alpha.1`
- Upgraded to `process@2.0.0-alpha.1`
- Upgraded to `shell@2.0.0-alpha.1`
- Upgraded to `updater@2.0.0-alpha.1`
## \[2.0.0-alpha.1]
### Dependencies
- Updated to latest `notification`
## \[2.0.0-alpha.0]
### Dependencies
+21 -17
View File
@@ -1,13 +1,14 @@
[package]
name = "api"
publish = false
version = "2.0.0-alpha.0"
version = "2.0.0-beta.1"
description = "An example Tauri Application showcasing the api"
edition = "2021"
rust-version = "1.65"
rust-version = { workspace = true }
license = "Apache-2.0 OR MIT"
[lib]
name = "api_lib"
crate-type = [ "staticlib", "cdylib", "rlib" ]
[build-dependencies]
@@ -18,17 +19,15 @@ serde_json = { workspace = true }
serde = { workspace = true }
tiny_http = "0.11"
log = { workspace = true }
tauri-plugin-app = { path = "../../../plugins/app", version = "2.0.0-alpha.0" }
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-alpha.0" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-alpha.0" }
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-alpha.0" }
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-alpha.0" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-alpha.0" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-alpha.0", features = [ "windows7-compat" ] }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-alpha.0" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-alpha.0" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-alpha.0" }
tauri-plugin-window = { path = "../../../plugins/window", version = "2.0.0-alpha.0", features = [ "devtools", "icon-ico", "icon-png" ] }
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.1" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.1", features = [ "watch" ] }
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-beta.1" }
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.1" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.1" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.1", features = [ "windows7-compat" ] }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.1" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.1" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.1" }
[dependencies.tauri]
workspace = true
@@ -37,14 +36,19 @@ tauri-plugin-window = { path = "../../../plugins/window", version = "2.0.0-alpha
"icon-png",
"isolation",
"macos-private-api",
"system-tray",
"tray-icon",
"protocol-asset"
]
[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-alpha.0" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-alpha.0" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-alpha.0" }
tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-beta.1" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.1" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.1" }
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.1" }
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.1" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.1" }
[target."cfg(target_os = \"windows\")".dependencies]
window-shadows = "0.2"
+3 -2
View File
@@ -7,6 +7,7 @@ fn main() {
if !cfg!(feature = "custom-protocol") {
codegen = codegen.dev();
}
codegen.build();
tauri_build::build();
tauri_build::try_build(tauri_build::Attributes::new().codegen(codegen))
.expect("failed to run tauri_build::try_build");
}
@@ -0,0 +1,79 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "run-app-base",
"description": "Base permissions to run the app",
"windows": ["main"],
"permissions": [
"log:default",
{
"identifier": "http:default",
"allow": [
{
"url": "http://localhost:3003"
}
]
},
"app:default",
"resources:default",
"fs:default",
"menu:default",
"path:default",
"tray:default",
"event:default",
"window:default",
"notification:default",
"os:allow-platform",
"dialog:allow-open",
"dialog:allow-save",
"dialog:allow-confirm",
"dialog:allow-message",
{
"identifier": "shell:allow-execute",
"allow": [
{
"name": "sh",
"cmd": "sh",
"args": [
"-c",
{
"validator": "\\S+"
}
]
},
{
"name": "cmd",
"cmd": "cmd",
"args": [
"/C",
{
"validator": "\\S+"
}
]
}
]
},
"shell:allow-kill",
"shell:allow-stdin-write",
"clipboard-manager:allow-read",
"clipboard-manager:allow-write",
"fs:allow-rename",
"fs:allow-mkdir",
"fs:allow-remove",
"fs:allow-write-text-file",
"fs:scope-download-recursive",
"fs:scope-resource-recursive",
{
"identifier": "fs:scope-appdata-recursive",
"allow": [
{
"path": "$APPDATA/db/**"
}
],
"deny": [
{
"path": "$APPDATA/db/*.stronghold"
}
]
}
]
}
@@ -0,0 +1,14 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "run-app-desktop",
"description": "Permissions to run the app (desktop only)",
"windows": ["main"],
"platforms": ["linux", "macOS", "windows"],
"permissions": [
"cli:default",
"updater:default",
"global-shortcut:allow-unregister",
"global-shortcut:allow-register",
"global-shortcut:allow-unregister-all"
]
}
@@ -0,0 +1,16 @@
{
"$schema": "../gen/schemas/mobile-schema.json",
"identifier": "run-app-mobile",
"description": "Permissions to run the app (mobile only)",
"windows": ["main"],
"platforms": ["android", "iOS"],
"permissions": [
"nfc:allow-write",
"nfc:allow-scan",
"biometric:allow-authenticate",
"barcode-scanner:allow-scan",
"barcode-scanner:allow-cancel",
"barcode-scanner:allow-request-permissions",
"barcode-scanner:allow-check-permissions"
]
}
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$USER_HOME$/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-2.0.0-beta.0/mobile/android" />
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/buildSrc" />
<option value="$PROJECT_DIR$/../../../../../plugins/barcode-scanner/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/biometric/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/clipboard-manager/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/dialog/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/nfc/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/notification/android" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.8.10" />
</component>
</project>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" />
</component>
</project>
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -16,6 +17,26 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. -->
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
<!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. -->
</activity>
<provider
@@ -1,16 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.api" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<style name="Theme.api" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
@@ -1,16 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.api" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<style name="Theme.api" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
@@ -16,7 +16,7 @@ open class BuildTask : DefaultTask() {
@TaskAction
fun assemble() {
val executable = """pnpm""";
val executable = """node""";
try {
runTauriCli(executable)
} catch (e: Exception) {
@@ -32,7 +32,7 @@ open class BuildTask : DefaultTask() {
val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null")
val target = target ?: throw GradleException("target cannot be null")
val release = release ?: throw GradleException("release cannot be null")
val args = listOf("tauri", "android", "android-studio-script");
val args = listOf("../node_modules/.bin/../@tauri-apps/cli/tauri.js", "android", "android-studio-script");
project.exec {
workingDir(File(project.projectDir, rootDirRel))
@@ -0,0 +1,3 @@
xcuserdata/
build/
Externals/
Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,116 @@
{
"images": [
{
"size": "20x20",
"idiom": "iphone",
"filename": "AppIcon-20x20@2x.png",
"scale": "2x"
},
{
"size": "20x20",
"idiom": "iphone",
"filename": "AppIcon-20x20@3x.png",
"scale": "3x"
},
{
"size": "29x29",
"idiom": "iphone",
"filename": "AppIcon-29x29@2x-1.png",
"scale": "2x"
},
{
"size": "29x29",
"idiom": "iphone",
"filename": "AppIcon-29x29@3x.png",
"scale": "3x"
},
{
"size": "40x40",
"idiom": "iphone",
"filename": "AppIcon-40x40@2x.png",
"scale": "2x"
},
{
"size": "40x40",
"idiom": "iphone",
"filename": "AppIcon-40x40@3x.png",
"scale": "3x"
},
{
"size": "60x60",
"idiom": "iphone",
"filename": "AppIcon-60x60@2x.png",
"scale": "2x"
},
{
"size": "60x60",
"idiom": "iphone",
"filename": "AppIcon-60x60@3x.png",
"scale": "3x"
},
{
"size": "20x20",
"idiom": "ipad",
"filename": "AppIcon-20x20@1x.png",
"scale": "1x"
},
{
"size": "20x20",
"idiom": "ipad",
"filename": "AppIcon-20x20@2x-1.png",
"scale": "2x"
},
{
"size": "29x29",
"idiom": "ipad",
"filename": "AppIcon-29x29@1x.png",
"scale": "1x"
},
{
"size": "29x29",
"idiom": "ipad",
"filename": "AppIcon-29x29@2x.png",
"scale": "2x"
},
{
"size": "40x40",
"idiom": "ipad",
"filename": "AppIcon-40x40@1x.png",
"scale": "1x"
},
{
"size": "40x40",
"idiom": "ipad",
"filename": "AppIcon-40x40@2x-1.png",
"scale": "2x"
},
{
"size": "76x76",
"idiom": "ipad",
"filename": "AppIcon-76x76@1x.png",
"scale": "1x"
},
{
"size": "76x76",
"idiom": "ipad",
"filename": "AppIcon-76x76@2x.png",
"scale": "2x"
},
{
"size": "83.5x83.5",
"idiom": "ipad",
"filename": "AppIcon-83.5x83.5@2x.png",
"scale": "2x"
},
{
"size": "1024x1024",
"idiom": "ios-marketing",
"filename": "AppIcon-512@2x.png",
"scale": "1x"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}
@@ -0,0 +1,6 @@
{
"info": {
"version": 1,
"author": "xcode"
}
}
@@ -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>method</key>
<string>development</string>
</dict>
</plist>
+21
View File
@@ -0,0 +1,21 @@
# Uncomment the next line to define a global platform for your project
target 'api_iOS' do
platform :ios, '13.0'
# Pods for api_iOS
end
target 'api_macOS' do
platform :osx, '11.0'
# Pods for api_macOS
end
# Delete the deployment target for iOS and macOS, causing it to be inherited from the Podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET'
end
end
end
@@ -0,0 +1,8 @@
#pragma once
namespace ffi {
extern "C" {
void start_app();
}
}
@@ -0,0 +1,6 @@
#include "bindings/bindings.h"
int main(int argc, char * argv[]) {
ffi::start_app();
return 0;
}
@@ -0,0 +1,462 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {
/* 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 */; };
328B4ADB3700C1873BEB7B10 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 90D3B673AFAB8D8AB561F616 /* main.mm */; };
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6B7E79E23E646BA7968B457C /* Assets.xcassets */; };
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62601E25FA39E62BE119B74D /* Metal.framework */; };
9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6082E363D51372A7658C351 /* UIKit.framework */; };
AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384966E551417F94A02D2706 /* Security.framework */; };
B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC377692DC31A070A0188C9D /* QuartzCore.framework */; };
C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */; };
DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 338E66700FD330B99D434DD7 /* MetalKit.framework */; };
F86717F05E27C72C9FA1FB27 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 74A8FDFB350B966F5AAD4A24 /* assets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = "<group>"; };
1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; path = tray.rs; 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; };
384966E551417F94A02D2706 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.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; };
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>"; };
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; };
785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; 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>"; };
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; };
EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; };
F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; path = cmd.rs; sourceTree = "<group>"; };
FC53D4128D7F74E4E6338455 /* libapi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapi.a; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
11E18DCDB3ADFE87C18915EF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
2ECFC1BC47D948875C8CEC41 /* libapi.a in Frameworks */,
3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */,
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */,
DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */,
B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */,
AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */,
9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */,
C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0677CEAF1F282F38CBA0F140 = {
isa = PBXGroup;
children = (
74A8FDFB350B966F5AAD4A24 /* assets */,
6B7E79E23E646BA7968B457C /* Assets.xcassets */,
F2116A6428EED18BE2A07E2B /* api_iOS */,
86D903732E10FAC4D300E8DF /* Externals */,
7A9A7AC155D9E22E54D6D847 /* Sources */,
CF9AA87D2F6E9C389B7AB70B /* src */,
10C9FC3FA3E12D6A4A67999D /* Frameworks */,
4AC51E67B71E27F15B02C5CD /* Products */,
);
sourceTree = "<group>";
};
07051859D6E2D8109C8FB128 /* bindings */ = {
isa = PBXGroup;
children = (
EC8C7948C50C3C9B5D96CB61 /* bindings.h */,
);
path = bindings;
sourceTree = "<group>";
};
10C9FC3FA3E12D6A4A67999D /* Frameworks */ = {
isa = PBXGroup;
children = (
71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */,
FC53D4128D7F74E4E6338455 /* libapi.a */,
62601E25FA39E62BE119B74D /* Metal.framework */,
338E66700FD330B99D434DD7 /* MetalKit.framework */,
DC377692DC31A070A0188C9D /* QuartzCore.framework */,
384966E551417F94A02D2706 /* Security.framework */,
B6082E363D51372A7658C351 /* UIKit.framework */,
59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
4AC51E67B71E27F15B02C5CD /* Products */ = {
isa = PBXGroup;
children = (
5AC703CEBA41A121596066F3 /* api_iOS.app */,
);
name = Products;
sourceTree = "<group>";
};
7A9A7AC155D9E22E54D6D847 /* Sources */ = {
isa = PBXGroup;
children = (
A3574F52DBC5463B9C3D043D /* api */,
);
path = Sources;
sourceTree = "<group>";
};
86D903732E10FAC4D300E8DF /* Externals */ = {
isa = PBXGroup;
children = (
);
path = Externals;
sourceTree = "<group>";
};
A3574F52DBC5463B9C3D043D /* api */ = {
isa = PBXGroup;
children = (
90D3B673AFAB8D8AB561F616 /* main.mm */,
07051859D6E2D8109C8FB128 /* bindings */,
);
path = api;
sourceTree = "<group>";
};
CF9AA87D2F6E9C389B7AB70B /* src */ = {
isa = PBXGroup;
children = (
F835F52713CE8F029D5D252C /* cmd.rs */,
785D025E9542F7E098BF22B5 /* lib.rs */,
0E96CE07CD20273DD46BF325 /* main.rs */,
1C1AB1B414CA2795AFBEDDB9 /* tray.rs */,
);
name = src;
path = ../../src;
sourceTree = "<group>";
};
F2116A6428EED18BE2A07E2B /* api_iOS */ = {
isa = PBXGroup;
children = (
879941AE3DAA14534BBC6391 /* api_iOS.entitlements */,
2F63E2AA460089BB58D40C79 /* Info.plist */,
);
path = api_iOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
54DC6E273C78071F3BA12EF3 /* api_iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 01CBC40275452376830D79B1 /* Build configuration list for PBXNativeTarget "api_iOS" */;
buildPhases = (
FF948951157DE71465B5BD5F /* Build Rust Code */,
71E73CC9AB5F1323EC1F6365 /* Sources */,
CA2BEC44B6EDA1F21B6155CD /* Resources */,
11E18DCDB3ADFE87C18915EF /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = api_iOS;
productName = api_iOS;
productReference = 5AC703CEBA41A121596066F3 /* api_iOS.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
9BC88C3717DA5D4B78A51C15 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1200;
TargetAttributes = {
54DC6E273C78071F3BA12EF3 = {
DevelopmentTeam = Q93MBH6S2F;
};
};
};
buildConfigurationList = 8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */;
compatibilityVersion = "Xcode 11.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
en,
);
mainGroup = 0677CEAF1F282F38CBA0F140;
projectDirPath = "";
projectRoot = "";
targets = (
54DC6E273C78071F3BA12EF3 /* api_iOS */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
CA2BEC44B6EDA1F21B6155CD /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */,
F86717F05E27C72C9FA1FB27 /* assets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
FF948951157DE71465B5BD5F /* Build Rust Code */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Build Rust Code";
outputFileListPaths = (
);
outputPaths = (
"$(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libapi.a",
"$(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libapi.a",
);
runOnlyForDeploymentPostprocessing = 0;
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:?}";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
71E73CC9AB5F1323EC1F6365 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
328B4ADB3700C1873BEB7B10 /* main.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
A83F70B4C02DD0222038C7F1 /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
};
name = release;
};
B6AD77E490F315562F75D3D7 /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
};
name = debug;
};
BF284FE6E7AE0C8DDCCE398B /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ARCHS = (
arm64,
"arm64-sim",
);
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\".\"",
);
INFOPLIST_FILE = api_iOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@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]" = "$(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/$(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_NAME = "Tauri API";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = "arm64 arm64-sim";
};
name = debug;
};
DB0E254D0FD84970B57F6410 /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ARCHS = (
arm64,
"arm64-sim",
);
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\".\"",
);
INFOPLIST_FILE = api_iOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@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]" = "$(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/$(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_NAME = "Tauri API";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = "arm64 arm64-sim";
};
name = release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
01CBC40275452376830D79B1 /* Build configuration list for PBXNativeTarget "api_iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BF284FE6E7AE0C8DDCCE398B /* debug */,
DB0E254D0FD84970B57F6410 /* release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = debug;
};
8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B6AD77E490F315562F75D3D7 /* debug */,
A83F70B4C02DD0222038C7F1 /* release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = debug;
};
/* End XCConfigurationList section */
};
rootObject = 9BC88C3717DA5D4B78A51C15 /* Project object */;
}
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
@@ -0,0 +1,10 @@
<?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>BuildSystemType</key>
<string>Original</string>
<key>DisableBuildSystemDeprecationDiagnostic</key>
<true/>
</dict>
</plist>
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1200"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54DC6E273C78071F3BA12EF3"
BuildableName = "Tauri API.app"
BlueprintName = "api_iOS"
ReferencedContainer = "container:api.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "NO">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54DC6E273C78071F3BA12EF3"
BuildableName = "Tauri API.app"
BlueprintName = "api_iOS"
ReferencedContainer = "container:api.xcodeproj">
</BuildableReference>
</MacroExpansion>
<EnvironmentVariables>
<EnvironmentVariable
key = "RUST_BACKTRACE"
value = "full"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "RUST_LOG"
value = "info"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54DC6E273C78071F3BA12EF3"
BuildableName = "Tauri API.app"
BlueprintName = "api_iOS"
ReferencedContainer = "container:api.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "RUST_BACKTRACE"
value = "full"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "RUST_LOG"
value = "info"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "release"
shouldUseLaunchSchemeArgsEnv = "NO"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54DC6E273C78071F3BA12EF3"
BuildableName = "Tauri API.app"
BlueprintName = "api_iOS"
ReferencedContainer = "container:api.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "RUST_BACKTRACE"
value = "full"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "RUST_LOG"
value = "info"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -0,0 +1,50 @@
<?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>NFCReaderUsageDescription</key>
<string>NFC Test</string>
<key>NSCameraUsageDescription</key>
<string>Request camera access for barcode scanner</string>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.0.0</string>
<key>CFBundleVersion</key>
<string>2.0.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
<string>metal</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>NSFaceIDUsageDescription</key>
<string>Biometric Test</string>
</dict>
</plist>
@@ -0,0 +1,11 @@
<?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>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>TAG</string>
<string>NDEF</string>
</array>
</dict>
</plist>
@@ -0,0 +1,88 @@
name: api
options:
bundleIdPrefix: com.tauri
deploymentTarget:
iOS: 13.0
fileGroups: [../../src]
configs:
debug: debug
release: release
settingGroups:
app:
base:
PRODUCT_NAME: Tauri API
PRODUCT_BUNDLE_IDENTIFIER: com.tauri.api
DEVELOPMENT_TEAM: Q93MBH6S2F
targetTemplates:
app:
type: application
sources:
- path: Sources
scheme:
environmentVariables:
RUST_BACKTRACE: full
RUST_LOG: info
settings:
groups: [app]
targets:
api_iOS:
type: application
platform: iOS
sources:
- path: Sources
- path: Assets.xcassets
- path: Externals
- path: api_iOS
- path: assets
buildPhase: resources
type: folder
info:
path: api_iOS/Info.plist
properties:
LSRequiresIPhoneOS: true
UILaunchStoryboardName: LaunchScreen
UIRequiredDeviceCapabilities: [arm64, metal]
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
CFBundleShortVersionString: 2.0.0
CFBundleVersion: 2.0.0
entitlements:
path: api_iOS/api_iOS.entitlements
scheme:
environmentVariables:
RUST_BACKTRACE: full
RUST_LOG: info
settings:
base:
ENABLE_BITCODE: false
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=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-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)
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
groups: [app]
dependencies:
- framework: libapi.a
embed: false
- sdk: CoreGraphics.framework
- sdk: Metal.framework
- sdk: MetalKit.framework
- sdk: QuartzCore.framework
- sdk: Security.framework
- sdk: UIKit.framework
- sdk: WebKit.framework
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:?}
name: Build Rust Code
basedOnDependencyAnalysis: false
outputFiles:
- $(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libapi.a
- $(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libapi.a
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+25 -21
View File
@@ -2,17 +2,12 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
#![cfg_attr(
all(not(debug_assertions), target_os = "windows"),
windows_subsystem = "windows"
)]
mod cmd;
#[cfg(desktop)]
mod tray;
use serde::Serialize;
use tauri::{window::WindowBuilder, App, AppHandle, RunEvent, WindowUrl};
use tauri::{webview::WebviewWindowBuilder, App, AppHandle, Manager, RunEvent, WebviewUrl};
#[derive(Clone, Serialize)]
struct Reply {
@@ -31,7 +26,6 @@ pub fn run() {
.level(log::LevelFilter::Info)
.build(),
)
.plugin(tauri_plugin_app::init())
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_clipboard_manager::init())
.plugin(tauri_plugin_dialog::init())
@@ -40,23 +34,29 @@ pub fn run() {
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init())
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_window::init())
.setup(move |app| {
#[cfg(desktop)]
{
tray::create_tray(app)?;
tray::create_tray(app.handle())?;
app.handle().plugin(tauri_plugin_cli::init())?;
app.handle()
.plugin(tauri_plugin_global_shortcut::Builder::new().build())?;
app.handle()
.plugin(tauri_plugin_updater::Builder::new().build())?;
}
#[cfg(mobile)]
{
app.handle().plugin(tauri_plugin_barcode_scanner::init())?;
app.handle().plugin(tauri_plugin_nfc::init())?;
app.handle().plugin(tauri_plugin_biometric::init())?;
}
let mut window_builder = WindowBuilder::new(app, "main", WindowUrl::default());
let mut webview_window_builder =
WebviewWindowBuilder::new(app, "main", WebviewUrl::default());
#[cfg(desktop)]
{
window_builder = window_builder
.user_agent("Tauri API")
webview_window_builder = webview_window_builder
.user_agent(&format!("Tauri API - {}", std::env::consts::OS))
.title("Tauri API Validation")
.inner_size(1000., 800.)
.min_inner_size(600., 400.)
@@ -65,18 +65,22 @@ pub fn run() {
#[cfg(target_os = "windows")]
{
window_builder = window_builder
webview_window_builder = webview_window_builder
.transparent(true)
.shadow(true)
.decorations(false);
}
let window = window_builder.build().unwrap();
#[cfg(target_os = "macos")]
{
webview_window_builder = webview_window_builder.transparent(true);
}
let webview = webview_window_builder.build().unwrap();
#[cfg(debug_assertions)]
window.open_devtools();
webview.open_devtools();
#[cfg(desktop)]
std::thread::spawn(|| {
let server = match tiny_http::Server::http("localhost:3003") {
Ok(s) => s,
@@ -103,15 +107,15 @@ pub fn run() {
Ok(())
})
.on_page_load(|window, _| {
let window_ = window.clone();
window.listen("js-event", move |event| {
.on_page_load(|webview, _| {
let webview_ = webview.clone();
webview.listen("js-event", move |event| {
println!("got js-event with message '{:?}'", event.payload());
let reply = Reply {
data: "something else".to_string(),
};
window_
webview_
.emit("rust-event", Some(reply))
.expect("failed to emit");
});
@@ -119,7 +123,7 @@ pub fn run() {
#[cfg(target_os = "macos")]
{
builder = builder.menu(tauri::Menu::os_default("Tauri API Validation"));
builder = builder.menu(tauri::menu::Menu::default);
}
#[allow(unused_mut)]
+1 -2
View File
@@ -6,6 +6,5 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
fn main() {
#[cfg(desktop)]
api::run();
api_lib::run();
}
+100 -126
View File
@@ -4,140 +4,114 @@
use std::sync::atomic::{AtomicBool, Ordering};
use tauri::{
CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, WindowBuilder, WindowUrl,
menu::{Menu, MenuItem},
tray::{ClickType, TrayIconBuilder},
Manager, Runtime, WebviewUrl, WebviewWindowBuilder,
};
use tauri_plugin_dialog::DialogExt;
use tauri_plugin_shell::ShellExt;
pub fn create_tray(app: &tauri::App) -> tauri::Result<()> {
let mut tray_menu1 = SystemTrayMenu::new()
.add_item(CustomMenuItem::new("toggle", "Toggle"))
.add_item(CustomMenuItem::new("new", "New window"))
.add_item(CustomMenuItem::new("icon_1", "Tray Icon 1"))
.add_item(CustomMenuItem::new("icon_2", "Tray Icon 2"));
pub fn create_tray<R: Runtime>(app: &tauri::AppHandle<R>) -> tauri::Result<()> {
let toggle_i = MenuItem::with_id(app, "toggle", "Toggle", true, None::<&str>)?;
let new_window_i = MenuItem::with_id(app, "new-window", "New window", true, None::<&str>)?;
let icon_i_1 = MenuItem::with_id(app, "icon-1", "Icon 1", true, None::<&str>)?;
let icon_i_2 = MenuItem::with_id(app, "icon-2", "Icon 2", true, None::<&str>)?;
#[cfg(target_os = "macos")]
{
tray_menu1 = tray_menu1.add_item(CustomMenuItem::new("set_title", "Set Title"));
}
let set_title_i = MenuItem::with_id(app, "set-title", "Set Title", true, None::<&str>)?;
let switch_i = MenuItem::with_id(app, "switch-menu", "Switch Menu", true, None::<&str>)?;
let quit_i = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?;
let remove_tray_i =
MenuItem::with_id(app, "remove-tray", "Remove Tray icon", true, None::<&str>)?;
let menu1 = Menu::with_items(
app,
&[
&toggle_i,
&new_window_i,
&icon_i_1,
&icon_i_2,
#[cfg(target_os = "macos")]
&set_title_i,
&switch_i,
&quit_i,
&remove_tray_i,
],
)?;
let menu2 = Menu::with_items(
app,
&[&toggle_i, &new_window_i, &switch_i, &quit_i, &remove_tray_i],
)?;
tray_menu1 = tray_menu1
.add_item(CustomMenuItem::new("switch_menu", "Switch Menu"))
.add_item(CustomMenuItem::new("about", "About"))
.add_item(CustomMenuItem::new("exit_app", "Quit"))
.add_item(CustomMenuItem::new("destroy", "Destroy"));
let tray_menu2 = SystemTrayMenu::new()
.add_item(CustomMenuItem::new("toggle", "Toggle"))
.add_item(CustomMenuItem::new("new", "New window"))
.add_item(CustomMenuItem::new("switch_menu", "Switch Menu"))
.add_item(CustomMenuItem::new("about", "About"))
.add_item(CustomMenuItem::new("exit_app", "Quit"))
.add_item(CustomMenuItem::new("destroy", "Destroy"));
let is_menu1 = AtomicBool::new(true);
let handle = app.handle();
let tray_id = "my-tray".to_string();
SystemTray::new()
.with_id(&tray_id)
.with_menu(tray_menu1.clone())
.with_tooltip("Tauri")
.on_event(move |event| {
let tray_handle = handle.tray_handle_by_id(&tray_id).unwrap();
match event {
SystemTrayEvent::LeftClick {
position: _,
size: _,
..
} => {
let window = handle.get_window("main").unwrap();
window.show().unwrap();
window.set_focus().unwrap();
let _ = TrayIconBuilder::with_id("tray-1")
.tooltip("Tauri")
.icon(app.default_window_icon().unwrap().clone())
.menu(&menu1)
.menu_on_left_click(false)
.on_menu_event(move |app, event| match event.id.as_ref() {
"quit" => {
app.exit(0);
}
"remove-tray" => {
app.remove_tray_by_id("tray-1");
}
"toggle" => {
if let Some(window) = app.get_webview_window("main") {
let new_title = if window.is_visible().unwrap_or_default() {
let _ = window.hide();
"Show"
} else {
let _ = window.show();
let _ = window.set_focus();
"Hide"
};
toggle_i.set_text(new_title).unwrap();
}
SystemTrayEvent::MenuItemClick { id, .. } => {
let item_handle = tray_handle.get_item(&id);
match id.as_str() {
"exit_app" => {
// exit the app
handle.exit(0);
}
"destroy" => {
tray_handle.destroy().unwrap();
}
"toggle" => {
let window = handle.get_window("main").unwrap();
let new_title = if window.is_visible().unwrap() {
window.hide().unwrap();
"Show"
} else {
window.show().unwrap();
"Hide"
};
item_handle.set_title(new_title).unwrap();
}
"new" => {
WindowBuilder::new(&handle, "new", WindowUrl::App("index.html".into()))
.title("Tauri")
.build()
.unwrap();
}
"set_title" => {
#[cfg(target_os = "macos")]
tray_handle.set_title("Tauri").unwrap();
}
"icon_1" => {
#[cfg(target_os = "macos")]
tray_handle.set_icon_as_template(true).unwrap();
tray_handle
.set_icon(tauri::Icon::Raw(
include_bytes!("../icons/tray_icon_with_transparency.png")
.to_vec(),
))
.unwrap();
}
"icon_2" => {
#[cfg(target_os = "macos")]
tray_handle.set_icon_as_template(true).unwrap();
tray_handle
.set_icon(tauri::Icon::Raw(
include_bytes!("../icons/icon.ico").to_vec(),
))
.unwrap();
}
"switch_menu" => {
let flag = is_menu1.load(Ordering::Relaxed);
let (menu, tooltip) = if flag {
(tray_menu2.clone(), "Menu 2")
} else {
(tray_menu1.clone(), "Tauri")
};
tray_handle.set_menu(menu).unwrap();
tray_handle.set_tooltip(tooltip).unwrap();
is_menu1.store(!flag, Ordering::Relaxed);
}
"about" => {
let window = handle.get_window("main").unwrap();
window
.dialog()
.message("Tauri demo app")
.title("About app")
.parent(&window)
.ok_button_label("Homepage")
.cancel_button_label("Cancel")
.show(move |ok| {
if ok {
window.shell().open("https://tauri.app/", None).unwrap();
}
});
}
_ => {}
}
}
"new-window" => {
let _ = WebviewWindowBuilder::new(app, "new", WebviewUrl::App("index.html".into()))
.title("Tauri")
.build();
}
#[cfg(target_os = "macos")]
"set-title" => {
if let Some(tray) = app.tray_by_id("tray-1") {
let _ = tray.set_title(Some("Tauri"));
}
}
i @ "icon-1" | i @ "icon-2" => {
if let Some(tray) = app.tray_by_id("tray-1") {
let _ = tray.set_icon(Some(tauri::Icon::Raw(if i == "icon-1" {
include_bytes!("../icons/icon.ico").to_vec()
} else {
include_bytes!("../icons/tray_icon_with_transparency.png").to_vec()
})));
}
}
"switch-menu" => {
let flag = is_menu1.load(Ordering::Relaxed);
let (menu, tooltip) = if flag {
(menu2.clone(), "Menu 2")
} else {
(menu1.clone(), "Tauri")
};
if let Some(tray) = app.tray_by_id("tray-1") {
let _ = tray.set_menu(Some(menu));
let _ = tray.set_tooltip(Some(tooltip));
}
is_menu1.store(!flag, Ordering::Relaxed);
}
_ => {}
})
.on_tray_icon_event(|tray, event| {
if event.click_type == ClickType::Left {
let app = tray.app_handle();
if let Some(window) = app.get_webview_window("main") {
let _ = window.show();
let _ = window.set_focus();
}
_ => {}
}
})
.build(app)
.map(|_| ())
.build(app);
Ok(())
}
+49 -90
View File
@@ -1,15 +1,40 @@
{
"$schema": "../node_modules/@tauri-apps/cli/schema.json",
"productName": "Tauri API",
"version": "2.0.0",
"identifier": "com.tauri.api",
"build": {
"distDir": "../dist",
"devPath": "http://localhost:5173",
"devUrl": "http://localhost:5173",
"frontendDist": "../dist",
"beforeDevCommand": "yarn dev",
"beforeBuildCommand": "yarn build",
"withGlobalTauri": true
"beforeBuildCommand": "yarn build"
},
"package": {
"productName": "Tauri API",
"version": "2.0.0"
"app": {
"withGlobalTauri": true,
"macOSPrivateApi": true,
"security": {
"pattern": {
"use": "isolation",
"options": {
"dir": "../isolation-dist/"
}
},
"csp": {
"default-src": "'self' customprotocol: asset:",
"connect-src": "ipc: http://ipc.localhost",
"font-src": ["https://fonts.gstatic.com"],
"img-src": "'self' asset: http://asset.localhost blob: data:",
"style-src": "'unsafe-inline' 'self' http://fonts.googleapis.com"
},
"freezePrototype": true,
"assetProtocol": {
"enable": true,
"scope": {
"allow": ["$APPDATA/db/**", "$RESOURCE/**"],
"deny": ["$APPDATA/db/*.stronghold"]
}
}
}
},
"plugins": {
"cli": {
@@ -47,100 +72,34 @@
}
}
},
"fs": {
"scope": {
"allow": ["$APPDATA/db/**", "$DOWNLOAD/**", "$RESOURCE/**"],
"deny": ["$APPDATA/db/*.stronghold"]
}
},
"shell": {
"open": true,
"scope": [
{
"name": "sh",
"cmd": "sh",
"args": [
"-c",
{
"validator": "\\S+"
}
]
},
{
"name": "cmd",
"cmd": "cmd",
"args": [
"/C",
{
"validator": "\\S+"
}
]
}
]
},
"http": {
"scope": ["http://localhost:3003"]
"open": true
},
"updater": {
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDE5QzMxNjYwNTM5OEUwNTgKUldSWTRKaFRZQmJER1h4d1ZMYVA3dnluSjdpN2RmMldJR09hUFFlZDY0SlFqckkvRUJhZDJVZXAK",
"endpoints": [
"https://tauri-update-server.vercel.app/update/{{target}}/{{current_version}}"
]
}
},
"tauri": {
"pattern": {
"use": "isolation",
"options": {
"dir": "../isolation-dist/"
}
},
"macOSPrivateApi": true,
"bundle": {
"active": true,
"identifier": "com.tauri.api",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
],
"windows": {
"wix": {
"language": {
"en-US": {},
"pt-BR": {
"localePath": "locales/pt-BR.wxl"
}
"bundle": {
"active": true,
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
],
"windows": {
"wix": {
"language": {
"en-US": {},
"pt-BR": {
"localePath": "locales/pt-BR.wxl"
}
}
},
"updater": {
"active": true,
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDE5QzMxNjYwNTM5OEUwNTgKUldSWTRKaFRZQmJER1h4d1ZMYVA3dnluSjdpN2RmMldJR09hUFFlZDY0SlFqckkvRUJhZDJVZXAK"
}
},
"windows": [],
"security": {
"csp": {
"default-src": "'self' customprotocol: asset:",
"font-src": ["https://fonts.gstatic.com"],
"img-src": "'self' asset: https://asset.localhost blob: data:",
"style-src": "'unsafe-inline' 'self' https://fonts.googleapis.com"
},
"freezePrototype": true,
"assetProtocol": {
"enable": true,
"scope": {
"allow": ["$APPDATA/db/**", "$RESOURCE/**"],
"deny": ["$APPDATA/db/*.stronghold"]
}
}
},
"systemTray": {
"iconPath": "icons/tray_icon_with_transparency.png",
"iconAsTemplate": true,
"menuOnLeftClick": false
}
}
}
+47 -32
View File
@@ -1,7 +1,8 @@
<script>
import { writable } from "svelte/store";
import { open } from "@tauri-apps/plugin-shell";
import { appWindow, getCurrent } from "@tauri-apps/plugin-window";
import { getCurrent } from "@tauri-apps/api/window";
import { getCurrent as getCurrentWebview } from "@tauri-apps/api/webview";
import * as os from "@tauri-apps/plugin-os";
import Welcome from "./views/Welcome.svelte";
@@ -11,16 +12,19 @@
import FileSystem from "./views/FileSystem.svelte";
import Http from "./views/Http.svelte";
import Notifications from "./views/Notifications.svelte";
import Window from "./views/Window.svelte";
import Shortcuts from "./views/Shortcuts.svelte";
import Shell from "./views/Shell.svelte";
import Updater from "./views/Updater.svelte";
import Clipboard from "./views/Clipboard.svelte";
import WebRTC from "./views/WebRTC.svelte";
import App from "./views/App.svelte";
import Scanner from "./views/Scanner.svelte";
import Biometric from "./views/Biometric.svelte";
import { onMount } from "svelte";
import { onMount, tick } from "svelte";
import { ask } from "@tauri-apps/plugin-dialog";
import Nfc from "./views/Nfc.svelte";
const appWindow = getCurrent();
if (appWindow.label !== "main") {
appWindow.onCloseRequested(async (event) => {
@@ -32,7 +36,7 @@
});
}
appWindow.onFileDropEvent((event) => {
getCurrentWebview().onFileDropEvent((event) => {
onMessage(`File drop: ${JSON.stringify(event.payload)}`);
});
@@ -71,21 +75,11 @@
component: Http,
icon: "i-ph-globe-hemisphere-west",
},
!isMobile && {
{
label: "Notifications",
component: Notifications,
icon: "i-codicon-bell-dot",
},
!isMobile && {
label: "App",
component: App,
icon: "i-codicon-hubot",
},
!isMobile && {
label: "Window",
component: Window,
icon: "i-codicon-window",
},
!isMobile && {
label: "Shortcuts",
component: Shortcuts,
@@ -101,7 +95,7 @@
component: Updater,
icon: "i-codicon-cloud-download",
},
!isMobile && {
{
label: "Clipboard",
component: Clipboard,
icon: "i-codicon-clippy",
@@ -111,6 +105,21 @@
component: WebRTC,
icon: "i-ph-broadcast",
},
isMobile && {
label: "Scanner",
component: Scanner,
icon: "i-ph-scan",
},
isMobile && {
label: "NFC",
component: Nfc,
icon: "i-ph-nfc",
},
isMobile && {
label: "Biometric",
component: Biometric,
icon: "i-ph-scan",
},
];
let selected = views[0];
@@ -121,20 +130,20 @@
// Window controls
let isWindowMaximized;
onMount(async () => {
const window = getCurrent();
isWindowMaximized = await window.isMaximized();
window.onResized(async () => {
isWindowMaximized = await window.isMaximized();
isWindowMaximized = await appWindow.isMaximized();
appWindow.onResized(async () => {
isWindowMaximized = await appWindow.isMaximized();
});
});
function minimize() {
getCurrent().minimize();
appWindow.minimize();
}
async function toggleMaximize() {
const window = getCurrent();
(await window.isMaximized()) ? window.unmaximize() : window.maximize();
(await appWindow.isMaximized())
? appWindow.unmaximize()
: appWindow.maximize();
}
let confirmed_close = false;
@@ -147,7 +156,7 @@
}
);
if (confirmed_close) {
getCurrent().close();
appWindow.close();
}
}
}
@@ -170,30 +179,35 @@
// Console
let messages = writable([]);
function onMessage(value) {
let consoleTextEl;
async function onMessage(value) {
messages.update((r) => [
...r,
{
html:
`<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` +
(typeof value === "string" ? value : JSON.stringify(value, null, 1)) +
"</pre>",
},
...r,
]);
await tick();
if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight;
}
// this function is renders HTML without sanitizing it so it's insecure
// we only use it with our own input data
function insecureRenderHtml(html) {
async function insecureRenderHtml(html) {
messages.update((r) => [
...r,
{
html:
`<pre><strong class="text-accent dark:text-darkAccent">[${new Date().toLocaleTimeString()}]:</strong> ` +
html +
"</pre>",
},
...r,
]);
await tick();
if (consoleTextEl) consoleTextEl.scrollTop = consoleTextEl.scrollHeight;
}
function clear() {
@@ -225,7 +239,7 @@
let isWindows;
onMount(async () => {
isWindows = (await os.platform()) === "win32";
isWindows = (await os.platform()) === "windows";
});
// mobile
@@ -354,7 +368,7 @@
<!-- Sidebar toggle, only visible on small screens -->
<div
id="sidebarToggle"
class="z-2000 display-none lt-sm:flex justify-center items-center absolute top-2 left-2 w-8 h-8 rd-8
class="z-2000 sidebar-toggle display-none lt-sm:flex justify-center absolute items-center w-8 h-8 rd-8
bg-accent dark:bg-darkAccent active:bg-accentDark dark:active:bg-darkAccentDark"
>
{#if isSideBarOpen}
@@ -442,6 +456,7 @@
</aside>
<main
class="flex-1 bg-primary dark:bg-darkPrimary transition-transform transition-colors-250 grid grid-rows-[2fr_auto]"
class:transparent={isMobile}
>
<div class="px-5 overflow-hidden grid grid-rows-[auto_1fr]">
<h1>{selected.label}</h1>
@@ -477,7 +492,7 @@
<div class="i-codicon-clear-all" />
</div>
</div>
<div class="px-2 overflow-y-auto all:font-mono code-block all:text-xs">
<div bind:this={consoleTextEl} class="px-2 overflow-y-auto all:font-mono code-block all:text-xs select-text mr-2">
{#each $messages as r}
{@html r.html}
{/each}
+20
View File
@@ -39,3 +39,23 @@ code.code-block {
transform: translateX(var(--translate-x));
}
}
.sidebar-toggle {
margin-top: 0.5rem;
margin-left: 0.5rem;
}
body {
overflow: hidden;
padding: env(safe-area-inset-top) env(safe-area-inset-right)
env(safe-area-inset-bottom) env(safe-area-inset-left);
}
#sidebar,
#console {
padding-bottom: calc(env(safe-area-inset-bottom) + 24px);
}
.transparent {
background-color: transparent;
}
-33
View File
@@ -1,33 +0,0 @@
<script>
import { show, hide } from "@tauri-apps/plugin-app";
export let onMessage;
function showApp() {
hideApp()
.then(() => {
setTimeout(() => {
show()
.then(() => onMessage("Shown app"))
.catch(onMessage);
}, 2000);
})
.catch(onMessage);
}
function hideApp() {
return hide()
.then(() => onMessage("Hide app"))
.catch(onMessage);
}
</script>
<div>
<button
class="btn"
id="show"
title="Hides and shows the app after 2 seconds"
on:click={showApp}>Show</button
>
<button class="btn" id="hide" on:click={hideApp}>Hide</button>
</div>
+30
View File
@@ -0,0 +1,30 @@
<script>
import { authenticate } from "@tauri-apps/plugin-biometric";
export let onMessage;
let allowDeviceCredential = true;
function auth() {
authenticate("Tauri API wants to show it is awesome :)", {
allowDeviceCredential,
cancelTitle: "Cancel request",
fallbackTitle: "Trying the fallback option",
title: "Tauri API Auth",
subtitle: "Please authenticate :)",
confirmationRequired: false,
maxAttemps: 1,
})
.then(onMessage)
.catch(onMessage);
}
</script>
<div>
<input
type="checkbox"
id="dllowDeviceCredential"
bind:checked={allowDeviceCredential}
/>
<label for="allowDeviceCredentiale">Allow device credential</label>
</div>
<button class="btn" id="cli-matches" on:click={auth}> Authenticate </button>
+4 -2
View File
@@ -1,8 +1,10 @@
<script>
import { appWindow } from "@tauri-apps/plugin-window";
import { invoke } from "@tauri-apps/api/tauri";
import { getCurrent } from "@tauri-apps/api/window";
import { invoke } from "@tauri-apps/api/core";
import { onMount, onDestroy } from "svelte";
const appWindow = getCurrent();
export let onMessage;
let unlisten;
+19 -3
View File
@@ -1,6 +1,6 @@
<script>
import { open, save, confirm } from "@tauri-apps/plugin-dialog";
import { readBinaryFile } from "@tauri-apps/plugin-fs";
import { open, save, confirm, message } from "@tauri-apps/plugin-dialog";
import { readFile } from "@tauri-apps/plugin-fs";
export let onMessage;
export let insecureRenderHtml;
@@ -22,6 +22,16 @@
}
async function prompt() {
confirm("Do you want to do something?")
.then((res) =>
onMessage(
res ? "Yes" : "No"
)
)
.catch(onMessage);
}
async function promptCustom() {
confirm("Is Tauri awesome?", {
okLabel: "Absolutely",
cancelLabel: "Totally",
@@ -34,6 +44,10 @@
.catch(onMessage);
}
async function msg() {
await message("Tauri is awesome!");
}
function openDialog() {
open({
title: "My wonderful open dialog",
@@ -55,7 +69,7 @@
} else {
var pathToRead = typeof res === "string" ? res : res.path;
var isFile = pathToRead.match(/\S+\.\S+$/g);
readBinaryFile(pathToRead)
readFile(pathToRead)
.then(function (response) {
if (isFile) {
if (
@@ -130,3 +144,5 @@
>Open save dialog</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="message-dialog" on:click={msg}>Message</button>
+191 -48
View File
@@ -1,17 +1,19 @@
<script>
import {
readBinaryFile,
writeTextFile,
readDir,
Dir,
} from "@tauri-apps/plugin-fs";
import { convertFileSrc } from "@tauri-apps/api/tauri";
import * as fs from "@tauri-apps/plugin-fs";
import { convertFileSrc } from "@tauri-apps/api/core";
export let onMessage;
export let insecureRenderHtml;
let pathToRead = "";
let path = "";
let img;
let file;
let renameTo;
let watchPath = "";
let watchDebounceDelay = 0;
let watchRecursive = false;
let unwatchFn;
let unwatchPath = "";
function getDir() {
const dirSelect = document.getElementById("dir");
@@ -30,56 +32,158 @@
reader.readAsDataURL(blob);
}
const DirOptions = Object.keys(Dir)
const DirOptions = Object.keys(fs.BaseDirectory)
.filter((key) => isNaN(parseInt(key)))
.map((dir) => [dir, Dir[dir]]);
.map((dir) => [dir, fs.BaseDirectory[dir]]);
function open() {
fs.open(path, {
baseDir: getDir(),
read: true,
write: true,
create: true,
})
.then((f) => {
file = f;
onMessage(`Opened ${path}`);
})
.catch(onMessage);
}
function mkdir() {
fs.mkdir(path, { baseDir: getDir() })
.then(() => {
onMessage(`Created dir ${path}`);
})
.catch(onMessage);
}
function remove() {
fs.remove(path, { baseDir: getDir() })
.then(() => {
onMessage(`Removed ${path}`);
})
.catch(onMessage);
}
function rename() {
fs.rename(path, renameTo, {
oldPathBaseDir: getDir(),
newPathBaseDir: getDir(),
})
.then(() => {
onMessage(`Renamed ${path} to ${renameTo}`);
})
.catch(onMessage);
}
function truncate() {
file
.truncate(0)
.then(() => {
onMessage(`Truncated file`);
})
.catch(onMessage);
}
function stat() {
file
.stat()
.then((stat) => {
onMessage(`File stat ${JSON.stringify(stat)}`);
})
.catch(onMessage);
}
function read() {
const isFile = pathToRead.match(/\S+\.\S+$/g);
const opts = {
dir: getDir(),
baseDir: getDir(),
};
const promise = isFile
? readBinaryFile(pathToRead, opts)
: readDir(pathToRead, opts);
promise
.then(function (response) {
if (isFile) {
if (pathToRead.includes(".png") || pathToRead.includes(".jpg")) {
arrayBufferToBase64(new Uint8Array(response), function (base64) {
const src = "data:image/png;base64," + base64;
insecureRenderHtml('<img src="' + src + '"></img>');
});
} else {
const value = String.fromCharCode.apply(null, response);
insecureRenderHtml(
'<textarea id="file-response"></textarea><button id="file-save">Save</button>'
);
setTimeout(() => {
const fileInput = document.getElementById("file-response");
fileInput.value = value;
document
.getElementById("file-save")
.addEventListener("click", function () {
writeTextFile(pathToRead, fileInput.value, {
dir: getDir(),
}).catch(onMessage);
fs.stat(path, opts)
.then((stat) => {
const isFile = stat.isFile;
const promise = isFile
? fs.readFile(path, opts)
: fs.readDir(path, opts);
promise
.then(function (response) {
if (isFile) {
if (path.includes(".png") || path.includes(".jpg")) {
arrayBufferToBase64(
new Uint8Array(response),
function (base64) {
const src = "data:image/png;base64," + base64;
insecureRenderHtml('<img src="' + src + '"></img>');
}
);
} else {
const value = String.fromCharCode.apply(null, response);
insecureRenderHtml(
'<textarea id="file-response"></textarea><button id="file-save">Save</button>'
);
setTimeout(() => {
const fileInput = document.getElementById("file-response");
fileInput.value = value;
document
.getElementById("file-save")
.addEventListener("click", function () {
fs.writeTextFile(path, fileInput.value, {
dir: getDir(),
}).catch(onMessage);
});
});
});
}
} else {
onMessage(response);
}
}
} else {
onMessage(response);
}
})
.catch(onMessage);
})
.catch(onMessage);
}
function setSrc() {
img.src = convertFileSrc(pathToRead);
img.src = convertFileSrc(path);
}
function watch() {
unwatch();
if (watchPath) {
onMessage(`Watching ${watchPath} for changes`);
let options = {
recursive: watchRecursive,
delayMs: parseInt(watchDebounceDelay),
};
if (options.delayMs === 0) {
fs.watchImmediate(watchPath, onMessage, options)
.then((fn) => {
unwatchFn = fn;
unwatchPath = watchPath;
})
.catch(onMessage);
} else {
fs.watch(watchPath, onMessage, options)
.then((fn) => {
unwatchFn = fn;
unwatchPath = watchPath;
})
.catch(onMessage);
}
}
}
function unwatch() {
if (unwatchFn) {
onMessage(`Stopped watching ${unwatchPath} for changes`);
unwatchFn();
}
unwatchFn = undefined;
unwatchPath = undefined;
}
</script>
<form class="flex flex-col" on:submit|preventDefault={read}>
<div class="flex flex-col">
<div class="flex gap-1">
<select class="input" id="dir">
<option value="">None</option>
@@ -89,17 +193,56 @@
</select>
<input
class="input grow"
id="path-to-read"
placeholder="Type the path to read..."
bind:value={pathToRead}
bind:value={path}
/>
</div>
<br />
<div>
<button class="btn" id="read">Read</button>
<button class="btn" on:click={open}>Open</button>
<button class="btn" on:click={read}>Read</button>
<button class="btn" on:click={mkdir}>Mkdir</button>
<button class="btn" on:click={remove}>Remove</button>
<div class="flex flex-row">
<button class="btn" on:click={rename}>Rename</button>
<input class="input" bind:value={renameTo} placeholder="To" />
</div>
<button class="btn" type="button" on:click={setSrc}>Use as img src</button>
</div>
</form>
{#if file}
<div>
<button class="btn" on:click={truncate}>Truncate</button>
<button class="btn" on:click={stat}>Stat</button>
</div>
{/if}
<h3>Watch</h3>
<input
class="input grow"
placeholder="Type the path to watch..."
bind:value={watchPath}
/>
<br />
<div>
<label for="watch-debounce-delay">Debounce delay in milliseconds (`0` disables the debouncer)</label>
<input
class="input"
id="watch-debounce-delay"
bind:value={watchDebounceDelay}
/>
</div>
<br />
<div>
<input type="checkbox" id="watch-recursive" bind:checked={watchRecursive} />
<label for="watch-recursive">Recursive</label>
</div>
<br />
<div>
<button class="btn" on:click={watch}>Watch</button>
<button class="btn" on:click={unwatch}>Unwatch</button>
</div>
</div>
<br />
+39 -35
View File
@@ -1,5 +1,5 @@
<script>
import { getClient, Body, ResponseType } from "@tauri-apps/plugin-http";
import { fetch as tauriFetch } from "@tauri-apps/plugin-http";
import { JsonView } from "@zerodevx/svelte-json-view";
let httpMethod = "GET";
@@ -8,53 +8,62 @@
export let onMessage;
async function makeHttpRequest() {
const client = await getClient().catch((e) => {
onMessage(e);
throw e;
});
let method = httpMethod || "GET";
const options = {
url: "http://localhost:3003",
method: method || "GET",
headers: {},
};
if (
(httpBody.startsWith("{") && httpBody.endsWith("}")) ||
(httpBody.startsWith("[") && httpBody.endsWith("]"))
) {
options.body = Body.json(JSON.parse(httpBody));
} else if (httpBody !== "") {
options.body = Body.text(httpBody);
let bodyType;
if (method !== "GET") {
options.body = httpBody;
if (
(httpBody.startsWith("{") && httpBody.endsWith("}")) ||
(httpBody.startsWith("[") && httpBody.endsWith("]"))
) {
options.headers["Content-Type"] = "application/json";
bodyType = "json";
} else if (httpBody !== "") {
bodyType = "text";
}
}
client.request(options).then(onMessage).catch(onMessage);
const response = await tauriFetch("http://localhost:3003", options);
const body =
bodyType === "json" ? await response.json() : await response.text();
onMessage({
url: response.url,
status: response.status,
ok: response.ok,
headers: Object.fromEntries(response.headers.entries()),
body,
});
}
/// http form
let foo = "baz";
let bar = "qux";
let result = null;
let multipart = true;
async function doPost() {
const client = await getClient().catch((e) => {
onMessage(e);
throw e;
});
result = await client.request({
url: "http://localhost:3003",
const form = new FormData();
form.append("foo", foo);
form.append("bar", bar);
const response = await tauriFetch("http://localhost:3003", {
method: "POST",
body: Body.form({
foo,
bar,
}),
headers: multipart
? { "Content-Type": "multipart/form-data" }
: undefined,
responseType: ResponseType.Text,
body: form,
});
result = {
url: response.url,
status: response.status,
ok: response.ok,
headers: Object.fromEntries(response.headers.entries()),
body: await response.text(),
};
}
</script>
@@ -87,11 +96,6 @@
<input class="input" bind:value={bar} />
</div>
<br />
<label>
<input type="checkbox" bind:checked={multipart} />
Multipart
</label>
<br />
<br />
<button class="btn" type="button" on:click={doPost}> Post it</button>
<br />
+126
View File
@@ -0,0 +1,126 @@
<script>
import { onMount } from "svelte";
import { write, scan, textRecord, uriRecord } from "@tauri-apps/plugin-nfc";
import * as os from "@tauri-apps/plugin-os";
export let onMessage;
const decoder = new TextDecoder();
let kind = "tag";
let writeToNfc = false;
let text = "";
let uri = "";
let scheme = "";
let host = "";
let pathPrefix = "";
let mimeType = "";
let isAndroid;
onMount(async () => {
isAndroid = (await os.platform()) === "android";
});
async function _readNfc() {
onMessage(`NFC scanning ${kind}`);
const tagResponse = await scan(
{
type: kind,
uri: {
scheme: scheme || null,
host: host || null,
pathPrefix: pathPrefix || null,
},
mimeType: mimeType || null,
},
{
keepSessionAlive: writeToNfc,
message: "Hold your iPhone near an NFC tag",
successMessage: "Tag successfully read",
}
);
onMessage({
id: decoder.decode(new Uint8Array(tagResponse.id)),
kind: tagResponse.kind,
records: tagResponse.records.map((record) => ({
id: decoder.decode(new Uint8Array(record.id)),
kind: decoder.decode(new Uint8Array(record.kind)),
payload: decoder.decode(new Uint8Array(record.payload)),
tnf: record.tnf,
})),
});
if (writeToNfc) {
const records = [];
if (text) {
records.push(textRecord(text, "tauriTextId"));
}
if (uri) {
records.push(uriRecord(uri, "tauriUriId"));
}
await write(records, {
successMessage: "Data written to tag",
});
onMessage("Wrote to tag");
}
}
function readNfc() {
_readNfc().catch(onMessage);
}
</script>
<div>
<div class="flex gap-2 children:grow items-center">
<div>
<input type="checkbox" id="nfc-write" bind:checked={writeToNfc} />
<label for="nfc-write">Write data</label>
</div>
<select class="input" id="request-method" bind:value={kind}>
<option value="tag">TAG</option>
<option value="ndef">NDEF</option>
</select>
</div>
{#if isAndroid}
<div class="flex flex-col gap-2 children:grow">
<p>Filters</p>
<div class="flex gap-2">
<input
class="input"
placeholder="Scheme"
style="width: 33%"
bind:value={scheme}
/>
<input
class="input"
placeholder="Host"
style="width: 33%"
bind:value={host}
/>
<input
class="input"
placeholder="Path prefix"
style="width: 33%"
bind:value={pathPrefix}
/>
</div>
<div class="flex gap-2">
<input class="input" placeholder="Mime type" bind:value={mimeType} />
</div>
</div>
{/if}
<div class="flex flex-col gap-2 children:grow">
<p>Write Records</p>
<div class="flex">
<input class="input" placeholder="Text record" bind:value={text} />
<input class="input" placeholder="URI record" bind:value={uri} />
</div>
</div>
<button class="btn" on:click={readNfc}>Scan</button>
</div>
+1 -1
View File
@@ -29,6 +29,6 @@
}
</script>
<button class="btn" id="notification" on:click={_sendNotification}>
<button class="btn" id="notification" on:click={sendNotification}>
Send test notification
</button>
+155
View File
@@ -0,0 +1,155 @@
<script>
import { scan, checkPermissions, requestPermissions, Format, cancel } from "@tauri-apps/plugin-barcode-scanner";
export let onMessage;
let scanning = false;
let windowed = true;
let formats = [Format.QRCode];
const supportedFormats = [Format.QRCode, Format.EAN13];
async function startScan() {
let permission = await checkPermissions();
if (permission === 'prompt') {
permission = await requestPermissions();
}
if (permission === 'granted') {
scanning = true;
scan({ windowed, formats })
.then((res) => {
scanning = false;
onMessage(res);
})
.catch((error) => {
scanning = false;
onMessage(error);
});
} else {
onMessage('Permission denied')
}
}
async function cancelScan() {
await cancel();
scanning = false;
onMessage("cancelled");
}
</script>
<div class="full-height">
<div class:invisible={scanning}>
<div>
<input type="checkbox" id="scanner-windowed" bind:checked={windowed} />
<label for="scanner-windowed">Windowed</label>
</div>
<div>
<select class="input" id="format" multiple bind:value={formats}>
{#each supportedFormats as f}
<option value={f}>{f}</option>
{/each}
</select>
</div>
<button class="btn" type="button" on:click={startScan}>Scan</button>
</div>
<div class="scanning full-height" class:invisible={!scanning}>
<div class="scanner-background">
<!-- this background simulates the camera view -->
</div>
<div class="container full-height">
<div class="barcode-scanner--area--container">
<div class="relative">
<p>Aim your camera at a QR code</p>
<button class="btn" type="button" on:click={cancelScan}>Cancel</button>
</div>
<div class="square surround-cover">
<div class="barcode-scanner--area--outer surround-cover">
<div class="barcode-scanner--area--inner" />
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.invisible {
display: none;
}
.full-height {
height: 100%;
}
p {
color: #fff;
font-family: sans-serif;
text-align: center;
font-weight: 600;
}
.container {
width: 100%;
height: 100%;
overflow: hidden;
}
.container {
display: flex;
}
.relative {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-between;
z-index: 1;
}
.square {
width: 100%;
position: relative;
overflow: hidden;
transition: 0.3s;
}
.square:after {
content: "";
top: 0;
display: block;
padding-bottom: 100%;
}
.square > div {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.surround-cover {
box-shadow: 0 0 0 99999px rgba(0, 0, 0, 0.5);
}
.barcode-scanner--area--container {
width: 80%;
max-width: min(500px, 80vh);
margin: auto;
}
.barcode-scanner--area--outer {
display: flex;
border-radius: 1em;
}
.barcode-scanner--area--inner {
width: 100%;
margin: 1rem;
border: 2px solid #fff;
box-shadow: 0px 0px 2px 1px rgb(0 0 0 / 0.5),
inset 0px 0px 2px 1px rgb(0 0 0 / 0.5);
border-radius: 1rem;
}
.scanner-background {
background: linear-gradient(45deg, #673ab7, transparent);
background-position: 45% 50%;
background-size: cover;
background-repeat: no-repeat;
}
</style>
+1 -1
View File
@@ -1,5 +1,5 @@
<script>
import { getName, getVersion, getTauriVersion } from "@tauri-apps/plugin-app";
import { getName, getVersion, getTauriVersion } from "@tauri-apps/api/app";
import { relaunch, exit } from "@tauri-apps/plugin-process";
let version = "1.0.0";
-459
View File
@@ -1,459 +0,0 @@
<script>
import {
appWindow,
WebviewWindow,
LogicalSize,
UserAttentionType,
PhysicalSize,
PhysicalPosition,
} from "@tauri-apps/plugin-window";
import { open as openDialog } from "@tauri-apps/plugin-dialog";
import { open } from "@tauri-apps/plugin-shell";
let selectedWindow = appWindow.label;
const windowMap = {
[appWindow.label]: appWindow,
};
const cursorIconOptions = [
"default",
"crosshair",
"hand",
"arrow",
"move",
"text",
"wait",
"help",
"progress",
// something cannot be done
"notAllowed",
"contextMenu",
"cell",
"verticalText",
"alias",
"copy",
"noDrop",
// something can be grabbed
"grab",
/// something is grabbed
"grabbing",
"allScroll",
"zoomIn",
"zoomOut",
// edge is to be moved
"eResize",
"nResize",
"neResize",
"nwResize",
"sResize",
"seResize",
"swResize",
"wResize",
"ewResize",
"nsResize",
"neswResize",
"nwseResize",
"colResize",
"rowResize",
];
export let onMessage;
let newWindowLabel;
let urlValue = "https://tauri.app";
let resizable = true;
let maximized = false;
let decorations = true;
let alwaysOnTop = false;
let contentProtected = true;
let fullscreen = false;
let width = null;
let height = null;
let minWidth = null;
let minHeight = null;
let maxWidth = null;
let maxHeight = null;
let x = null;
let y = null;
let scaleFactor = 1;
let innerPosition = new PhysicalPosition(x, y);
let outerPosition = new PhysicalPosition(x, y);
let innerSize = new PhysicalSize(width, height);
let outerSize = new PhysicalSize(width, height);
let resizeEventUnlisten;
let moveEventUnlisten;
let cursorGrab = false;
let cursorVisible = true;
let cursorX = null;
let cursorY = null;
let cursorIcon = "default";
let cursorIgnoreEvents = false;
let windowTitle = "Awesome Tauri Example!";
function openUrl() {
open(urlValue);
}
function setTitle_() {
windowMap[selectedWindow].setTitle(windowTitle);
}
function hide_() {
windowMap[selectedWindow].hide();
setTimeout(windowMap[selectedWindow].show, 2000);
}
function minimize_() {
windowMap[selectedWindow].minimize();
setTimeout(windowMap[selectedWindow].unminimize, 2000);
}
function getIcon() {
openDialog({
multiple: false,
}).then((path) => {
if (typeof path === "string") {
windowMap[selectedWindow].setIcon(path);
}
});
}
function createWindow() {
if (!newWindowLabel) return;
const webview = new WebviewWindow(newWindowLabel);
windowMap[newWindowLabel] = webview;
webview.once("tauri://error", function () {
onMessage("Error creating new webview");
});
}
function loadWindowSize() {
windowMap[selectedWindow].innerSize().then((response) => {
innerSize = response;
width = innerSize.width;
height = innerSize.height;
});
windowMap[selectedWindow].outerSize().then((response) => {
outerSize = response;
});
}
function loadWindowPosition() {
windowMap[selectedWindow].innerPosition().then((response) => {
innerPosition = response;
});
windowMap[selectedWindow].outerPosition().then((response) => {
outerPosition = response;
x = outerPosition.x;
y = outerPosition.y;
});
}
async function addWindowEventListeners(window) {
if (!window) return;
if (resizeEventUnlisten) {
resizeEventUnlisten();
}
if (moveEventUnlisten) {
moveEventUnlisten();
}
moveEventUnlisten = await window.listen("tauri://move", loadWindowPosition);
resizeEventUnlisten = await window.listen("tauri://resize", loadWindowSize);
}
async function requestUserAttention_() {
await windowMap[selectedWindow].minimize();
await windowMap[selectedWindow].requestUserAttention(
UserAttentionType.Critical
);
await new Promise((resolve) => setTimeout(resolve, 3000));
await windowMap[selectedWindow].requestUserAttention(null);
}
$: {
windowMap[selectedWindow];
loadWindowPosition();
loadWindowSize();
}
$: windowMap[selectedWindow]?.setResizable(resizable);
$: maximized
? windowMap[selectedWindow]?.maximize()
: windowMap[selectedWindow]?.unmaximize();
$: windowMap[selectedWindow]?.setDecorations(decorations);
$: windowMap[selectedWindow]?.setAlwaysOnTop(alwaysOnTop);
$: windowMap[selectedWindow]?.setContentProtected(contentProtected);
$: windowMap[selectedWindow]?.setFullscreen(fullscreen);
$: width &&
height &&
windowMap[selectedWindow]?.setSize(new PhysicalSize(width, height));
$: minWidth && minHeight
? windowMap[selectedWindow]?.setMinSize(
new LogicalSize(minWidth, minHeight)
)
: windowMap[selectedWindow]?.setMinSize(null);
$: maxWidth > 800 && maxHeight > 400
? windowMap[selectedWindow]?.setMaxSize(
new LogicalSize(maxWidth, maxHeight)
)
: windowMap[selectedWindow]?.setMaxSize(null);
$: x !== null &&
y !== null &&
windowMap[selectedWindow]?.setPosition(new PhysicalPosition(x, y));
$: windowMap[selectedWindow]
?.scaleFactor()
.then((factor) => (scaleFactor = factor));
$: addWindowEventListeners(windowMap[selectedWindow]);
$: windowMap[selectedWindow]?.setCursorGrab(cursorGrab);
$: windowMap[selectedWindow]?.setCursorVisible(cursorVisible);
$: windowMap[selectedWindow]?.setCursorIcon(cursorIcon);
$: cursorX !== null &&
cursorY !== null &&
windowMap[selectedWindow]?.setCursorPosition(
new PhysicalPosition(cursorX, cursorY)
);
$: windowMap[selectedWindow]?.setIgnoreCursorEvents(cursorIgnoreEvents);
</script>
<div class="flex flex-col children:grow gap-2">
<div class="flex gap-1">
<input
class="input grow"
type="text"
placeholder="New Window label.."
bind:value={newWindowLabel}
/>
<button class="btn" on:click={createWindow}>New window</button>
</div>
<br />
{#if Object.keys(windowMap).length >= 1}
<span class="font-700 text-sm">Selected window:</span>
<select class="input" bind:value={selectedWindow}>
<option value="" disabled selected>Choose a window...</option>
{#each Object.keys(windowMap) as label}
<option value={label}>{label}</option>
{/each}
</select>
{/if}
{#if windowMap[selectedWindow]}
<br />
<div class="flex flex-wrap gap-2">
<button
class="btn"
title="Unminimizes after 2 seconds"
on:click={() => windowMap[selectedWindow].center()}
>
Center
</button>
<button
class="btn"
title="Unminimizes after 2 seconds"
on:click={minimize_}
>
Minimize
</button>
<button
class="btn"
title="Visible again after 2 seconds"
on:click={hide_}
>
Hide
</button>
<button class="btn" on:click={getIcon}> Change icon </button>
<button
class="btn"
on:click={requestUserAttention_}
title="Minimizes the window, requests attention for 3s and then resets it"
>Request attention</button
>
</div>
<br />
<div class="flex flex-wrap gap-2">
<label>
Maximized
<input type="checkbox" bind:checked={maximized} />
</label>
<label>
Resizable
<input type="checkbox" bind:checked={resizable} />
</label>
<label>
Has decorations
<input type="checkbox" bind:checked={decorations} />
</label>
<label>
Always on top
<input type="checkbox" bind:checked={alwaysOnTop} />
</label>
<label>
Content protected
<input type="checkbox" bind:checked={contentProtected} />
</label>
<label>
Fullscreen
<input type="checkbox" bind:checked={fullscreen} />
</label>
</div>
<br />
<div class="flex flex-row gap-2 flex-wrap">
<div class="flex children:grow flex-col">
<div>
X
<input class="input" type="number" bind:value={x} min="0" />
</div>
<div>
Y
<input class="input" type="number" bind:value={y} min="0" />
</div>
</div>
<div class="flex children:grow flex-col">
<div>
Width
<input class="input" type="number" bind:value={width} min="400" />
</div>
<div>
Height
<input class="input" type="number" bind:value={height} min="400" />
</div>
</div>
<div class="flex children:grow flex-col">
<div>
Min width
<input class="input" type="number" bind:value={minWidth} />
</div>
<div>
Min height
<input class="input" type="number" bind:value={minHeight} />
</div>
</div>
<div class="flex children:grow flex-col">
<div>
Max width
<input class="input" type="number" bind:value={maxWidth} min="800" />
</div>
<div>
Max height
<input class="input" type="number" bind:value={maxHeight} min="400" />
</div>
</div>
</div>
<br />
<div>
<div class="flex">
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Inner Size
</div>
<span>Width: {innerSize.width}</span>
<span>Height: {innerSize.height}</span>
</div>
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Outer Size
</div>
<span>Width: {outerSize.width}</span>
<span>Height: {outerSize.height}</span>
</div>
</div>
<div class="flex">
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Inner Logical Size
</div>
<span>Width: {innerSize.toLogical(scaleFactor).width}</span>
<span>Height: {innerSize.toLogical(scaleFactor).height}</span>
</div>
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Outer Logical Size
</div>
<span>Width: {outerSize.toLogical(scaleFactor).width}</span>
<span>Height: {outerSize.toLogical(scaleFactor).height}</span>
</div>
</div>
<div class="flex">
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Inner Position
</div>
<span>x: {innerPosition.x}</span>
<span>y: {innerPosition.y}</span>
</div>
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Outer Position
</div>
<span>x: {outerPosition.x}</span>
<span>y: {outerPosition.y}</span>
</div>
</div>
<div class="flex">
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Inner Logical Position
</div>
<span>x: {innerPosition.toLogical(scaleFactor).x}</span>
<span>y: {innerPosition.toLogical(scaleFactor).y}</span>
</div>
<div class="grow">
<div class="text-accent dark:text-darkAccent font-700">
Outer Logical Position
</div>
<span>x: {outerPosition.toLogical(scaleFactor).x}</span>
<span>y: {outerPosition.toLogical(scaleFactor).y}</span>
</div>
</div>
</div>
<br />
<h4 class="mb-2">Cursor</h4>
<div class="flex gap-2">
<label>
<input type="checkbox" bind:checked={cursorGrab} />
Grab
</label>
<label>
<input type="checkbox" bind:checked={cursorVisible} />
Visible
</label>
<label>
<input type="checkbox" bind:checked={cursorIgnoreEvents} />
Ignore events
</label>
</div>
<div class="flex gap-2">
<label>
Icon
<select class="input" bind:value={cursorIcon}>
{#each cursorIconOptions as kind}
<option value={kind}>{kind}</option>
{/each}
</select>
</label>
<label>
X position
<input class="input" type="number" bind:value={cursorX} />
</label>
<label>
Y position
<input class="input" type="number" bind:value={cursorY} />
</label>
</div>
<br />
<div class="flex flex-col gap-1">
<form class="flex gap-1" on:submit|preventDefault={setTitle_}>
<input class="input grow" id="title" bind:value={windowTitle} />
<button class="btn" type="submit">Set title</button>
</form>
<form class="flex gap-1" on:submit|preventDefault={openUrl}>
<input class="input grow" id="url" bind:value={urlValue} />
<button class="btn" id="open-url"> Open URL </button>
</form>
</div>
{/if}
</div>
+2 -7
View File
@@ -2,13 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
import {
defineConfig,
presetIcons,
presetUno,
extractorSvelte,
presetWebFonts,
} from "unocss";
import { defineConfig, presetIcons, presetUno, presetWebFonts } from "unocss";
import extractorSvelte from "@unocss/extractor-svelte";
export default defineConfig({
theme: {
+2 -2
View File
@@ -11,8 +11,8 @@ import process from "process";
// https://vitejs.dev/config/
export default defineConfig(async () => {
const host =
process.env.TAURI_PLATFORM === "android" ||
process.env.TAURI_PLATFORM === "ios"
process.env.TAURI_ENV_PLATFORM === "android" ||
process.env.TAURI_ENV_PLATFORM === "ios"
? await internalIpV4()
: "localhost";
return {
+30 -19
View File
@@ -6,28 +6,39 @@
"scripts": {
"build": "pnpm run -r --parallel --filter !plugins-workspace --filter !\"./plugins/*/examples/**\" --filter !\"./examples/*\" build",
"lint": "eslint .",
"format": "prettier --write .",
"format-check": "prettier --check ."
"format": "prettier --write \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore",
"format-check": "prettier --check \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore"
},
"devDependencies": {
"@rollup/plugin-node-resolve": "^15.0.2",
"@rollup/plugin-terser": "^0.4.1",
"@rollup/plugin-typescript": "^11.1.0",
"@typescript-eslint/eslint-plugin": "^5.58.0",
"@typescript-eslint/parser": "^5.58.0",
"covector": "^0.9.0",
"eslint": "^8.38.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-standard-with-typescript": "^34.0.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^16.0.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-security": "^1.7.1",
"prettier": "^2.8.7",
"rollup": "^3.20.4",
"typescript": "^5.0.4"
"@rollup/plugin-node-resolve": "15.2.3",
"@rollup/plugin-terser": "0.4.4",
"@rollup/plugin-typescript": "11.1.6",
"@typescript-eslint/eslint-plugin": "6.20.0",
"@typescript-eslint/parser": "6.20.0",
"covector": "^0.10.2",
"eslint": "8.56.0",
"eslint-config-prettier": "9.1.0",
"eslint-config-standard-with-typescript": "43.0.1",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-n": "16.6.2",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-security": "2.1.0",
"prettier": "3.2.2",
"rollup": "4.9.6",
"typescript": "5.3.3"
},
"resolutions": {
"semver": ">=7.5.2",
"optionator": ">=0.9.3"
},
"engines": {
"pnpm": ">=7.24.2"
"pnpm": ">=7.33.1"
},
"pnpm": {
"auditConfig": {
"ignoreCves": [
"CVE-2023-46115"
]
}
}
}
-5
View File
@@ -1,5 +0,0 @@
# Changelog
## \[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!

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