Merge branch 'v2' into deeplinks-more-data

pull/993/head
Fabian-Lars 3 months ago committed by GitHub
commit c7fb74e9b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,5 +7,5 @@ ignore = [
# wry needs kuchiki on Android # wry needs kuchiki on Android
"RUSTSEC-2023-0019", "RUSTSEC-2023-0019",
# atty is only used when the `colored` feature is enabled on tauri-plugin-log # atty is only used when the `colored` feature is enabled on tauri-plugin-log
"RUSTSEC-2021-0145" "RUSTSEC-2021-0145",
] ]

@ -1,57 +0,0 @@
---
"authenticator": patch
"autostart": patch
"barcode-scanner": patch
"biometric": patch
"cli": patch
"clipboard-manager": patch
"deep-link": patch
"dialog": patch
"fs": patch
"global-shortcut": patch
"http": patch
"localhost": patch
"log-plugin": patch
"nfc": patch
"notification": patch
"os": patch
"persisted-scope": patch
"positioner": patch
"process": patch
"shell": patch
"single-instance": patch
"sql": patch
"store": patch
"stronghold": patch
"updater": patch
"upload": patch
"websocket": patch
"window-state": patch
"authenticator-js": patch
"autostart-js": patch
"barcode-scanner-js": patch
"biometric-js": patch
"cli-js": patch
"clipboard-manager-js": patch
"deep-link-js": patch
"dialog-js": patch
"fs-js": patch
"global-shortcut-js": patch
"http-js": patch
"log-js": patch
"nfc-js": patch
"notification-js": patch
"os-js": patch
"positioner-js": patch
"process-js": patch
"shell-js": patch
"sql-js": patch
"store-js": patch
"stronghold-js": patch
"updater-js": patch
"upload-js": patch
"websocket-js": patch
"window-state-js": patch
---
Update to tauri beta.

@ -3,24 +3,50 @@
"pkgManagers": { "pkgManagers": {
"javascript": { "javascript": {
"version": true, "version": true,
"getPublishedVersion": "node ../../.scripts/covector/package-latest-version.cjs npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }", "getPublishedVersion": {
"publish": ["pnpm build", "pnpm publish --access public --no-git-checks"] "use": "fetch:check",
"options": {
"url": "https://registry.npmjs.com/${ pkg.pkgFile.pkg.name }/${ pkg.pkgFile.version }"
}
},
"publish": [
{
"command": "pnpm build",
"dryRunCommand": "pnpm build"
},
{
"command": "echo '<details>\n<summary><em><h4>PNPM Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "npm publish --provenance --access public",
"dryRunCommand": "npm publish --provenance --access public --dry-run",
"pipe": true
},
{
"command": "echo '```\n\n</details>\n'",
"dryRunCommand": true,
"pipe": true
}
]
}, },
"rust": { "rust": {
"version": true, "version": true,
"getPublishedVersion": "node ../../.scripts/covector/package-latest-version.cjs cargo ${ pkgFile.pkg.package.name } ${ pkgFile.pkg.package.version }", "getPublishedVersion": {
"use": "fetch:check",
"options": {
"url": "https://crates.io/api/v1/crates/${ pkg.pkgFile.pkg.package.name }/${ pkg.pkgFile.version }"
}
},
"publish": [ "publish": [
{
"command": "cargo package --no-verify",
"dryRunCommand": true
},
{ {
"command": "echo '<details>\n<summary><em><h4>Cargo Publish</h4></em></summary>\n\n```'", "command": "echo '<details>\n<summary><em><h4>Cargo Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true, "dryRunCommand": true,
"pipe": true "pipe": true
}, },
{ {
"command": "cargo publish", "command": "cargo publish --no-verify",
"dryRunCommand": "cargo publish --dry-run", "dryRunCommand": "cargo publish --dry-run",
"pipe": true "pipe": true
}, },
@ -40,19 +66,23 @@
"dependencies": [ "dependencies": [
"barcode-scanner", "barcode-scanner",
"biometric", "biometric",
"log-plugin", "log",
"cli", "cli",
"clipboard-manager", "clipboard-manager",
"dialog", "dialog",
"fs", "fs",
"global-shortcut", "global-shortcut",
"opener",
"http", "http",
"nfc", "nfc",
"notification", "notification",
"os", "os",
"process", "process",
"shell", "shell",
"updater" "store",
"updater",
"geolocation",
"haptics"
] ]
}, },
"api-example-js": { "api-example-js": {
@ -68,12 +98,14 @@
"dialog-js", "dialog-js",
"fs-js", "fs-js",
"global-shortcut-js", "global-shortcut-js",
"opener-js",
"http-js", "http-js",
"nfc-js", "nfc-js",
"notification-js", "notification-js",
"os-js", "os-js",
"process-js", "process-js",
"shell-js", "shell-js",
"store-js",
"updater-js" "updater-js"
], ],
"postversion": "pnpm install --no-frozen-lockfile" "postversion": "pnpm install --no-frozen-lockfile"
@ -85,14 +117,6 @@
"dependencies": ["deep-link-js"], "dependencies": ["deep-link-js"],
"postversion": "pnpm install --no-frozen-lockfile" "postversion": "pnpm install --no-frozen-lockfile"
}, },
"authenticator": {
"path": "./plugins/authenticator",
"manager": "rust"
},
"authenticator-js": {
"path": "./plugins/authenticator",
"manager": "javascript"
},
"autostart": { "autostart": {
"path": "./plugins/autostart", "path": "./plugins/autostart",
"manager": "rust" "manager": "rust"
@ -156,6 +180,15 @@
}, },
"dialog-js": { "dialog-js": {
"path": "./plugins/dialog", "path": "./plugins/dialog",
"manager": "javascript",
"dependencies": ["fs-js"]
},
"geolocation": {
"path": "./plugins/geolocation",
"manager": "rust"
},
"geolocation-js": {
"path": "./plugins/geolocation",
"manager": "javascript" "manager": "javascript"
}, },
"global-shortcut": { "global-shortcut": {
@ -166,6 +199,22 @@
"path": "./plugins/global-shortcut", "path": "./plugins/global-shortcut",
"manager": "javascript" "manager": "javascript"
}, },
"opener": {
"path": "./plugins/opener",
"manager": "rust"
},
"opener-js": {
"path": "./plugins/opener",
"manager": "javascript"
},
"haptics": {
"path": "./plugins/haptics",
"manager": "rust"
},
"haptics-js": {
"path": "./plugins/haptics",
"manager": "javascript"
},
"http": { "http": {
"path": "./plugins/http", "path": "./plugins/http",
"manager": "rust", "manager": "rust",
@ -173,13 +222,14 @@
}, },
"http-js": { "http-js": {
"path": "./plugins/http", "path": "./plugins/http",
"manager": "javascript" "manager": "javascript",
"dependencies": ["fs-js"]
}, },
"localhost": { "localhost": {
"path": "./plugins/localhost", "path": "./plugins/localhost",
"manager": "rust" "manager": "rust"
}, },
"log-plugin": { "log": {
"path": "./plugins/log", "path": "./plugins/log",
"manager": "rust" "manager": "rust"
}, },
@ -242,32 +292,12 @@
}, },
"single-instance": { "single-instance": {
"path": "./plugins/single-instance", "path": "./plugins/single-instance",
"manager": "rust" "manager": "rust",
"dependencies": ["deep-link"]
}, },
"sql": { "sql": {
"path": "./plugins/sql", "path": "./plugins/sql",
"manager": "rust", "manager": "rust"
"publish": [
{
"command": "cargo package --no-verify",
"dryRunCommand": true
},
{
"command": "echo '<details>\n<summary><em><h4>Cargo Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "cargo publish --features sqlite",
"dryRunCommand": "cargo publish --features sqlite --dry-run",
"pipe": true
},
{
"command": "echo '```\n\n</details>\n'",
"dryRunCommand": true,
"pipe": true
}
]
}, },
"sql-js": { "sql-js": {
"path": "./plugins/sql", "path": "./plugins/sql",

@ -1,6 +0,0 @@
---
"dialog": "patch"
"dialog-js": "patch"
---
Allow configuring `canCreateDirectories` for open and save dialogs on macOS, if not configured, it will be set to `true` by default.

@ -0,0 +1,5 @@
---
single-instance: patch
---
fix `cwd` in single instance on macOS, which was the cwd of the first instance, instead of the second (like it is on windows and linux)

@ -1,5 +0,0 @@
---
"single-instance": patch
---
Fix `zbus::blocking::connection::Builder` import.

@ -0,0 +1,6 @@
---
fs: minor
fs-js: minor
---
Reduce the overhead of `watch` and `unwatch`

@ -0,0 +1,6 @@
---
"http": patch
"http-js": patch
---
Properly handle responses with status code 204.

@ -1,6 +0,0 @@
---
"http": "patch"
"http-js": "patch"
---
Allow `User-Agent` header to be set.

@ -1,32 +0,0 @@
---
"authenticator": patch
"autostart": patch
"barcode-scanner": patch
"biometric": patch
"cli": patch
"clipboard-manager": patch
"deep-link": patch
"dialog": patch
"fs": patch
"global-shortcut": patch
"http": patch
"localhost": patch
"log-plugin": patch
"nfc": patch
"notification": patch
"os": patch
"persisted-scope": patch
"positioner": patch
"process": patch
"shell": patch
"single-instance": patch
"sql": patch
"store": patch
"stronghold": patch
"updater": patch
"upload": patch
"websocket": patch
"window-state": patch
---
Update MSRV to 1.75.

@ -0,0 +1,6 @@
---
"opener": patch
"opener-js": patch
---
Update `windows` crate to 0.61 to align with Tauri 2.5

@ -1,9 +0,0 @@
{
"tag": "beta",
"changes": [
".changes/beta.md",
".changes/fix-zbus-import.md",
".changes/msrv-1.75.md",
".changes/tauri-beta-4.md"
]
}

@ -6,12 +6,14 @@ As you create PRs and make changes that require a version bump, please add a new
When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process. When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process.
**Note, that in this repository, even if only the Rust code or only the JavaScript code of a plugin changed, both packages need to be bumped with the same increment!**
Use the following format: Use the following format:
```md ```md
--- ---
"package-a": patch "package-a": patch
"package-b": minor "package-b": minor:feat
--- ---
Change summary goes here Change summary goes here

@ -1,57 +0,0 @@
---
"authenticator": patch
"autostart": patch
"barcode-scanner": patch
"biometric": patch
"cli": patch
"clipboard-manager": patch
"deep-link": patch
"dialog": patch
"fs": patch
"global-shortcut": patch
"http": patch
"localhost": patch
"log-plugin": patch
"nfc": patch
"notification": patch
"os": patch
"persisted-scope": patch
"positioner": patch
"process": patch
"shell": patch
"single-instance": patch
"sql": patch
"store": patch
"stronghold": patch
"updater": patch
"upload": patch
"websocket": patch
"window-state": patch
"authenticator-js": patch
"autostart-js": patch
"barcode-scanner-js": patch
"biometric-js": patch
"cli-js": patch
"clipboard-manager-js": patch
"deep-link-js": patch
"dialog-js": patch
"fs-js": patch
"global-shortcut-js": patch
"http-js": patch
"log-js": patch
"nfc-js": patch
"notification-js": patch
"os-js": patch
"positioner-js": patch
"process-js": patch
"shell-js": patch
"sql-js": patch
"store-js": patch
"stronghold-js": patch
"updater-js": patch
"upload-js": patch
"websocket-js": patch
"window-state-js": patch
---
Update to tauri beta.4.

@ -1,8 +0,0 @@
target
node_modules
dist
build/
dist-js
api-iife.js
init-iife.js
init.js

@ -1,20 +0,0 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"prettier",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:security/recommended-legacy"
],
"overrides": [],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"rules": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

@ -7,23 +7,23 @@ name: Audit JavaScript
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * *" - cron: '0 0 * * *'
push: push:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-javascript.yml" - '.github/workflows/audit-javascript.yml'
- "**/pnpm-lock.yaml" - '**/pnpm-lock.yaml'
- "**/package.json" - '**/package.json'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-javascript.yml" - '.github/workflows/audit-javascript.yml'
- "**/pnpm-lock.yaml" - '**/pnpm-lock.yaml'
- "**/package.json" - '**/package.json'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -33,20 +33,20 @@ jobs:
audit-js: audit-js:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Cache pnpm modules - name: Cache pnpm modules
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: ~/.pnpm-store path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
with: with:
node-version: 18 node-version: 'lts/*'
- uses: pnpm/action-setup@v2 - uses: pnpm/action-setup@v4
with: with:
version: 7.x.x version: 10.x.x
run_install: true run_install: true
- name: audit - name: audit
run: pnpm audit run: pnpm audit

@ -7,23 +7,23 @@ name: Audit Rust
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * *" - cron: '0 0 * * *'
push: push:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-rust.yml" - '.github/workflows/audit-rust.yml'
- "**/Cargo.lock" - '**/Cargo.lock'
- "**/Cargo.toml" - '**/Cargo.toml'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/audit-rust.yml" - '.github/workflows/audit-rust.yml'
- "**/Cargo.lock" - '**/Cargo.lock'
- "**/Cargo.toml" - '**/Cargo.toml'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -33,7 +33,7 @@ jobs:
audit-rust: audit-rust:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: rustsec/audit-check@v1 - uses: rustsec/audit-check@v1
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

@ -0,0 +1,44 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check change files
on:
pull_request:
paths:
- '.changes/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: check change files end with .md
run: |
for file in .changes/*
do
if [[ ! "$file" =~ \.(md|json)$ ]]; then
echo ".changes directory should only contain files that end with .md"
echo "found an invalid file in .changes directory:"
echo "$file"
exit 1
fi
done
- uses: dorny/paths-filter@v3
id: filter
with:
list-files: shell
filters: |
changes:
- added|modified: '.changes/*.md'
- name: check
run: node ./.scripts/ci/check-change-files.js ${{ steps.filter.outputs.changes_files }}
if: ${{ steps.filter.outputs.changes == 'true' }}

@ -7,8 +7,9 @@ name: check generated files
on: on:
pull_request: pull_request:
paths: paths:
- ".github/workflows/check-generated-files.yml" - '.github/workflows/check-generated-files.yml'
- "**/guest-js/**" - pnpm-lock.yaml
- '**/guest-js/**'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -20,93 +21,124 @@ jobs:
outputs: outputs:
packages: ${{ steps.filter.outputs.changes }} packages: ${{ steps.filter.outputs.changes }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: dorny/paths-filter@v2 - uses: dorny/paths-filter@v2
id: filter id: filter
with: with:
filters: | filters: |
authenticator:
- .github/workflows/check-generated-files.yml
- plugins/authenticator/guest-js/**
- plugins/authenticator/src/api-iife.js
autostart: autostart:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/autostart/guest-js/** - plugins/autostart/guest-js/**
- plugins/autostart/src/api-iife.js - plugins/autostart/src/api-iife.js
cli: cli:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/cli/guest-js/** - plugins/cli/guest-js/**
- plugins/cli/src/api-iife.js - plugins/cli/src/api-iife.js
clipboard-manager: clipboard-manager:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/clipboard-manager/guest-js/** - plugins/clipboard-manager/guest-js/**
- plugins/clipboard-manager/src/api-iife.js - plugins/clipboard-manager/src/api-iife.js
dialog: dialog:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/dialog/guest-js/** - plugins/dialog/guest-js/**
- plugins/dialog/src/api-iife.js - plugins/dialog/src/api-iife.js
fs: fs:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/fs/guest-js/** - plugins/fs/guest-js/**
- plugins/fs/src/api-iife.js - plugins/fs/src/api-iife.js
geolocation:
- .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/geolocation/guest-js/**
- plugins/geolocation/src/api-iife.js
global-shortcut: global-shortcut:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/global-shortcut/guest-js/** - plugins/global-shortcut/guest-js/**
- plugins/global-shortcut/src/api-iife.js - plugins/global-shortcut/src/api-iife.js
opener:
- .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/opener/guest-js/**
- plugins/opener/src/api-iife.js
haptics:
- .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/haptics/guest-js/**
- plugins/haptics/src/api-iife.js
http: http:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/http/guest-js/** - plugins/http/guest-js/**
- plugins/http/src/api-iife.js - plugins/http/src/api-iife.js
log: log:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/log/guest-js/** - plugins/log/guest-js/**
- plugins/log/src/api-iife.js - plugins/log/src/api-iife.js
notification: notification:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/notification/guest-js/** - plugins/notification/guest-js/**
- plugins/notification/src/api-iife.js - plugins/notification/src/api-iife.js
os: os:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/os/guest-js/** - plugins/os/guest-js/**
- plugins/os/src/api-iife.js - plugins/os/src/api-iife.js
positioner: positioner:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/positioner/guest-js/** - plugins/positioner/guest-js/**
- plugins/positioner/src/api-iife.js - plugins/positioner/src/api-iife.js
process: process:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/process/guest-js/** - plugins/process/guest-js/**
- plugins/process/src/api-iife.js - plugins/process/src/api-iife.js
shell: shell:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/shell/guest-js/** - plugins/shell/guest-js/**
- plugins/shell/src/api-iife.js - plugins/shell/src/api-iife.js
sql: sql:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/sql/guest-js/** - plugins/sql/guest-js/**
- plugins/sql/src/api-iife.js - plugins/sql/src/api-iife.js
store: store:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/store/guest-js/** - plugins/store/guest-js/**
- plugins/store/src/api-iife.js - plugins/store/src/api-iife.js
stronghold: stronghold:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/stronghold/guest-js/** - plugins/stronghold/guest-js/**
- plugins/stronghold/src/api-iife.js - plugins/stronghold/src/api-iife.js
updater: updater:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/updater/guest-js/** - plugins/updater/guest-js/**
- plugins/updater/src/api-iife.js - plugins/updater/src/api-iife.js
upload: upload:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/upload/guest-js/** - plugins/upload/guest-js/**
- plugins/upload/src/api-iife.js - plugins/upload/src/api-iife.js
websocket: websocket:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/websocket/guest-js/** - plugins/websocket/guest-js/**
- plugins/websocket/src/api-iife.js - plugins/websocket/src/api-iife.js
window-state: window-state:
- .github/workflows/check-generated-files.yml - .github/workflows/check-generated-files.yml
- pnpm-lock.yaml
- plugins/window-state/guest-js/** - plugins/window-state/guest-js/**
- plugins/window-state/src/api-iife.js - plugins/window-state/src/api-iife.js
@ -121,21 +153,21 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Cache pnpm modules - name: Cache pnpm modules
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: ~/.pnpm-store path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
with: with:
node-version: 18 node-version: 'lts/*'
- uses: pnpm/action-setup@v2 - uses: pnpm/action-setup@v4
with: with:
version: 7.x.x version: 10.x.x
run_install: true run_install: true
- name: build api - name: build api

@ -15,7 +15,7 @@ jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- uses: dorny/paths-filter@v2 - uses: dorny/paths-filter@v2
id: filter id: filter
with: with:

@ -0,0 +1,30 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: covector comment
on:
workflow_run:
workflows: [covector status] # the `name` of the workflow run on `pull_request` running `status` with `comment: true`
types:
- completed
# note all other permissions are set to none if not specified
# and these set the permissions for `secrets.GITHUB_TOKEN`
permissions:
# to read the action artifacts on `covector status` workflows
actions: read
# to write the comment
pull-requests: write
jobs:
download:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success' &&
(github.event.workflow_run.head_repository.full_name != github.repository || github.actor == 'dependabot[bot]')
steps:
- name: covector status
uses: jbolda/covector/packages/action@covector-v0
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: 'status'

@ -10,11 +10,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 # required for use of git history fetch-depth: 0 # required for use of git history
- name: covector status - name: covector status
uses: jbolda/covector/packages/action@covector-v0 uses: jbolda/covector/packages/action@covector-v0
id: covector id: covector
with: with:
command: "status" command: 'status'
token: ${{ secrets.GITHUB_TOKEN }}
comment: true

@ -1,68 +0,0 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: version or publish
on:
push:
branches:
- v2
jobs:
version-or-publish:
runs-on: ubuntu-latest
timeout-minutes: 65
outputs:
change: ${{ steps.covector.outputs.change }}
commandRan: ${{ steps.covector.outputs.commandRan }}
successfulPublish: ${{ steps.covector.outputs.successfulPublish }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # required for use of git history
- uses: actions/setup-node@v3
with:
node-version: "lts/*"
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v2
with:
version: 7.x.x
run_install: true
- name: install webkit2gtk and libudev for [authenticator]
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev
- name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
- name: git config
run: |
git config --global user.name "${{ github.event.pusher.name }}"
git config --global user.email "${{ github.event.pusher.email }}"
- name: covector version or publish (publish when no change files present)
uses: jbolda/covector/packages/action@covector-v0
id: covector
env:
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: "version-or-publish"
createRelease: true
- name: Create Pull Request With Versions Bumped
id: cpr
uses: tauri-apps/create-pull-request@v3
if: steps.covector.outputs.commandRan == 'version'
with:
title: "Publish New Versions (v2)"
commit-message: "publish new versions"
labels: "version updates"
branch: "release-v2"
body: ${{ steps.covector.outputs.change }}

@ -8,6 +8,15 @@ on:
push: push:
branches: branches:
- v1 - v1
- v2
permissions:
# required for npm provenance
id-token: write
# required to create the GitHub Release
contents: write
# required for creating the Version Packages Release
pull-requests: write
jobs: jobs:
version-or-publish: version-or-publish:
@ -19,25 +28,20 @@ jobs:
successfulPublish: ${{ steps.covector.outputs.successfulPublish }} successfulPublish: ${{ steps.covector.outputs.successfulPublish }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 # required for use of git history fetch-depth: 0 # required for use of git history
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
with: with:
node-version: "lts/*" node-version: 'lts/*'
registry-url: "https://registry.npmjs.org" registry-url: 'https://registry.npmjs.org'
- uses: pnpm/action-setup@v2 - uses: pnpm/action-setup@v4
with: with:
version: 7.x.x version: 10.x.x
run_install: true run_install: true
- name: install webkit2gtk and libudev for [authenticator]
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev
- name: cargo login - name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }} run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
@ -46,23 +50,36 @@ jobs:
git config --global user.name "${{ github.event.pusher.name }}" git config --global user.name "${{ github.event.pusher.name }}"
git config --global user.email "${{ github.event.pusher.email }}" git config --global user.email "${{ github.event.pusher.email }}"
- name: Setup target dir on /mnt
# This directory has a larger partition size
run: |
sudo mkdir /mnt/target
WORKSPACE_OWNER="$(stat -c '%U:%G' "${GITHUB_WORKSPACE}")"
sudo chown -R "${WORKSPACE_OWNER}" /mnt/target
- name: covector version or publish (publish when no change files present) - name: covector version or publish (publish when no change files present)
uses: jbolda/covector/packages/action@covector-v0 uses: jbolda/covector/packages/action@covector-v0
id: covector id: covector
env: env:
CARGO_TARGET_DIR: /mnt/target
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
command: "version-or-publish" command: 'version-or-publish'
createRelease: true createRelease: true
recognizeContributors: true
- name: Sync Cargo.lock
if: steps.covector.outputs.commandRan == 'version'
run: cargo tree --depth 0
- name: Create Pull Request With Versions Bumped - name: Create Pull Request With Versions Bumped
id: cpr id: cpr
uses: tauri-apps/create-pull-request@v3 uses: peter-evans/create-pull-request@dd2324fc52d5d43c699a5636bcf19fceaa70c284 # 7.0.7
if: steps.covector.outputs.commandRan == 'version' if: steps.covector.outputs.commandRan == 'version'
with: with:
title: "Publish New Versions" title: 'Publish New Versions (${{ github.ref_name }})'
commit-message: "publish new versions" commit-message: 'publish new versions'
labels: "version updates" labels: 'version updates'
branch: "release" branch: 'ci/release-${{ github.ref_name }}'
body: ${{ steps.covector.outputs.change }} body: ${{ steps.covector.outputs.change }}

@ -0,0 +1,59 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check formatting
on:
pull_request:
jobs:
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: run cargo fmt
run: cargo fmt --all -- --check
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
version: 10.x.x
run_install: true
- run: pnpm format:check
taplo:
name: taplo (.toml files)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install taplo-cli
uses: taiki-e/install-action@v2
with:
tool: taplo-cli
- run: taplo fmt --check --diff

@ -10,15 +10,15 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/integration-tests.yml" - '.github/workflows/integration-tests.yml'
- "plugins/updater/src/**" - 'plugins/updater/src/**'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/integration-tests.yml" - '.github/workflows/integration-tests.yml'
- "plugins/updater/src/**" - 'plugins/updater/src/**'
jobs: jobs:
run-integration-tests: run-integration-tests:
@ -27,23 +27,21 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
platform: [ubuntu-latest, macos-latest, windows-latest] platform: [ubuntu-22.04, macos-latest, windows-latest]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: install stable - name: install stable
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: install Linux dependencies - name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest' if: matrix.platform == 'ubuntu-22.04'
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev libfuse2 sudo apt-get install -y webkit2gtk-4.0 libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libfuse2
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2

@ -10,23 +10,23 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-javascript.yml" - '.github/workflows/lint-javascript.yml'
- "plugins/*/guest-js/**" - 'plugins/*/guest-js/**'
- ".eslintignore" - '.eslintignore'
- ".eslintrc.json" - '.eslintrc.json'
- ".prettierignore" - '.prettierignore'
- "**/package.json" - '**/package.json'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-javascript.yml" - '.github/workflows/lint-javascript.yml'
- "plugins/*/guest-js/**" - 'plugins/*/guest-js/**'
- ".eslintignore" - '.eslintignore'
- ".eslintrc.json" - '.eslintrc.json'
- ".prettierignore" - '.prettierignore'
- "**/package.json" - '**/package.json'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -36,40 +36,20 @@ jobs:
eslint: eslint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Cache pnpm modules - name: Cache pnpm modules
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: ~/.pnpm-store path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
with: with:
node-version: 18 node-version: 'lts/*'
- uses: pnpm/action-setup@v2 - uses: pnpm/action-setup@v4
with: with:
version: 7.x.x version: 10.x.x
run_install: true run_install: true
- name: eslint - name: eslint
run: pnpm lint run: pnpm lint
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache pnpm modules
uses: actions/cache@v3
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: actions/setup-node@v3
with:
node-version: 18
- uses: pnpm/action-setup@v2
with:
version: 7.x.x
run_install: true
- name: prettier check
run: pnpm format-check

@ -10,19 +10,19 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-rust.yml" - '.github/workflows/lint-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/lint-rust.yml" - '.github/workflows/lint-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -36,14 +36,11 @@ jobs:
outputs: outputs:
packages: ${{ steps.filter.outputs.changes }} packages: ${{ steps.filter.outputs.changes }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: dorny/paths-filter@v2 - uses: dorny/paths-filter@v2
id: filter id: filter
with: with:
filters: | filters: |
tauri-plugin-authenticator:
- .github/workflows/lint-rust.yml
- plugins/authenticator/**
tauri-plugin-autostart: tauri-plugin-autostart:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/autostart/** - plugins/autostart/**
@ -53,6 +50,9 @@ jobs:
tauri-plugin-clipboard-manager: tauri-plugin-clipboard-manager:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/clipboard-manager/** - plugins/clipboard-manager/**
tauri-plugin-deep-link:
- .github/workflows/lint-rust.yml
- plugins/deep-link/**
tauri-plugin-dialog: tauri-plugin-dialog:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/dialog/** - plugins/dialog/**
@ -60,9 +60,18 @@ jobs:
tauri-plugin-fs: tauri-plugin-fs:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/fs/** - plugins/fs/**
tauri-plugin-geolocation:
- .github/workflows/lint-rust.yml
- plugins/geolocation/**
tauri-plugin-global-shortcut: tauri-plugin-global-shortcut:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/global-shortcut/** - plugins/global-shortcut/**
tauri-plugin-opener:
- .github/workflows/lint-rust.yml
- plugins/opener/**
tauri-plugin-haptics:
- .github/workflows/lint-rust.yml
- plugins/haptics/**
tauri-plugin-http: tauri-plugin-http:
- .github/workflows/lint-rust.yml - .github/workflows/lint-rust.yml
- plugins/http/** - plugins/http/**
@ -120,19 +129,19 @@ jobs:
clippy: clippy:
needs: changes needs: changes
if: ${{ needs.changes.outputs.packages != '[]' && needs.changes.outputs.packages != '' }} if: ${{ needs.changes.outputs.packages != '[]' && needs.changes.outputs.packages != '' }}
runs-on: ubuntu-latest runs-on: ubuntu-22.04
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }} package: ${{ fromJSON(needs.changes.outputs.packages) }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: install webkit2gtk and libudev for [authenticator] - name: install webkit2gtk
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev
- name: Install clippy with stable toolchain - name: Install clippy with stable toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
@ -141,32 +150,8 @@ jobs:
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: create dummy dist
working-directory: examples/api
run: mkdir dist
- name: clippy ${{ matrix.package }} - name: clippy ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings
- name: clippy ${{ matrix.package }} mysql - name: clippy ${{ matrix.package }} --all-features
if: matrix.package == 'tauri-plugin-sql' run: cargo clippy --package ${{ matrix.package }} --all-targets --all-features -- -D warnings
run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features mysql -- -D warnings
- name: clippy ${{ matrix.package }} postgres
if: matrix.package == 'tauri-plugin-sql'
run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features postgres -- -D warnings
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install rustfmt with nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Check formatting
run: cargo fmt --all -- --check

@ -19,26 +19,26 @@ jobs:
sync-to-mirrors: sync-to-mirrors:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Fetch git tags - name: Fetch git tags
run: git fetch origin 'refs/tags/*:refs/tags/*' run: git fetch origin 'refs/tags/*:refs/tags/*'
- name: Cache pnpm modules - name: Cache pnpm modules
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: ~/.pnpm-store path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}- ${{ runner.os }}-
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
with: with:
node-version: 18 node-version: 'lts/*'
- uses: pnpm/action-setup@v2 - uses: pnpm/action-setup@v4
with: with:
version: 7.x.x version: 10.x.x
run_install: true run_install: true
- name: Build packages - name: Build packages

@ -10,21 +10,21 @@ on:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/test-rust.yml" - '.github/workflows/test-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
- "**/Cargo.lock" - '**/Cargo.lock'
pull_request: pull_request:
branches: branches:
- v1 - v1
- v2 - v2
paths: paths:
- ".github/workflows/test-rust.yml" - '.github/workflows/test-rust.yml'
- "plugins/*/src/**" - 'plugins/*/src/**'
- "!plugins/*/src/api-iife.js" - '!plugins/*/src/api-iife.js'
- "**/Cargo.toml" - '**/Cargo.toml'
- "**/Cargo.lock" - '**/Cargo.lock'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -38,85 +38,149 @@ jobs:
outputs: outputs:
packages: ${{ steps.filter.outputs.changes }} packages: ${{ steps.filter.outputs.changes }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: dorny/paths-filter@v2 - uses: dorny/paths-filter@v2
id: filter id: filter
with: with:
base: v2
filters: | filters: |
tauri-plugin-authenticator:
- .github/workflows/test-rust.yml
- plugins/authenticator/**
tauri-plugin-autostart: tauri-plugin-autostart:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/autostart/** - plugins/autostart/**
tauri-plugin-cli: tauri-plugin-cli:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/cli/** - plugins/cli/**
tauri-plugin-clipboard-manager: tauri-plugin-clipboard-manager:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/clipboard-manager/** - plugins/clipboard-manager/**
tauri-plugin-deep-link:
- .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/deep-link/**
tauri-plugin-dialog: tauri-plugin-dialog:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/dialog/** - plugins/dialog/**
- plugins/fs/** - plugins/fs/**
tauri-plugin-fs: tauri-plugin-fs:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/fs/** - plugins/fs/**
tauri-plugin-geolocation:
- .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/geolocation/**
tauri-plugin-global-shortcut: tauri-plugin-global-shortcut:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/global-shortcut/** - plugins/global-shortcut/**
tauri-plugin-opener:
- .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/opener/**
tauri-plugin-haptics:
- .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/haptics/**
tauri-plugin-http: tauri-plugin-http:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/http/** - plugins/http/**
- plugins/fs/** - plugins/fs/**
tauri-plugin-localhost: tauri-plugin-localhost:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/localhost/** - plugins/localhost/**
tauri-plugin-log: tauri-plugin-log:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/log/** - plugins/log/**
tauri-plugin-notification: tauri-plugin-notification:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/notification/** - plugins/notification/**
tauri-plugin-os: tauri-plugin-os:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/os/** - plugins/os/**
tauri-plugin-persisted-scope: tauri-plugin-persisted-scope:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/persisted-scope/** - plugins/persisted-scope/**
- plugins/fs/** - plugins/fs/**
tauri-plugin-positioner: tauri-plugin-positioner:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/positioner/** - plugins/positioner/**
tauri-plugin-process: tauri-plugin-process:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/process/** - plugins/process/**
tauri-plugin-shell: tauri-plugin-shell:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/shell/** - plugins/shell/**
tauri-plugin-single-instance: tauri-plugin-single-instance:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/single-instance/** - plugins/single-instance/**
tauri-plugin-sql: tauri-plugin-sql:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/sql/** - plugins/sql/**
tauri-plugin-store: tauri-plugin-store:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/store/** - plugins/store/**
tauri-plugin-stronghold: tauri-plugin-stronghold:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/stronghold/** - plugins/stronghold/**
tauri-plugin-updater: tauri-plugin-updater:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/updater/** - plugins/updater/**
tauri-plugin-upload: tauri-plugin-upload:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/upload/** - plugins/upload/**
tauri-plugin-websocket: tauri-plugin-websocket:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/websocket/** - plugins/websocket/**
tauri-plugin-window-state: tauri-plugin-window-state:
- .github/workflows/test-rust.yml - .github/workflows/test-rust.yml
- Cargo.toml
- Cargo.lock
- plugins/window-state/** - plugins/window-state/**
test: test:
@ -131,51 +195,45 @@ jobs:
target: x86_64-pc-windows-msvc, target: x86_64-pc-windows-msvc,
os: windows-latest, os: windows-latest,
runner: 'cargo', runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: x86_64-unknown-linux-gnu, target: x86_64-unknown-linux-gnu,
os: ubuntu-latest, os: ubuntu-22.04,
runner: 'cargo', runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: x86_64-apple-darwin, target: aarch64-apple-darwin,
os: macos-latest, os: macos-latest,
runner: 'cargo', runner: 'cargo',
command: "test", command: 'test'
} }
- { - {
target: aarch64-apple-ios, target: aarch64-apple-ios,
os: macos-latest, os: macos-latest,
runner: 'cargo', runner: 'cargo',
command: "build", command: 'build'
} }
- { - {
target: aarch64-linux-android, target: aarch64-linux-android,
os: ubuntu-latest, os: ubuntu-latest,
runner: 'cross', runner: 'cross',
command: "build", command: 'build'
} }
runs-on: ${{ matrix.platform.os }} runs-on: ${{ matrix.platform.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: install webkit2gtk and libudev for [authenticator] - name: install webkit2gtk
if: contains(matrix.platform.target, 'unknown-linux') if: contains(matrix.platform.target, 'unknown-linux')
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libudev-dev sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev
- name: install openssl - uses: dtolnay/rust-toolchain@1.77.2
if: ${{ matrix.platform.os == 'windows-latest' && matrix.package == 'tauri-plugin-authenticator' }}
run: |
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
vcpkg install openssl:x64-windows-static-md
- uses: dtolnay/rust-toolchain@1.75.0
with: with:
targets: ${{ matrix.platform.target }} targets: ${{ matrix.platform.target }}
@ -183,30 +241,14 @@ jobs:
with: with:
key: cache-${{ matrix.package }}-${{ matrix.platform.target }} key: cache-${{ matrix.package }}-${{ matrix.platform.target }}
- name: create dummy dist
working-directory: examples/api
run: mkdir dist
- name: install cross - name: install cross
if: ${{ matrix.platform.runner == 'cross' }} if: ${{ matrix.platform.runner == 'cross' }}
run: cargo +stable install cross --git https://github.com/cross-rs/cross run: cargo +stable install cross --git https://github.com/cross-rs/cross
- name: test ${{ matrix.package }} - name: test ${{ matrix.package }}
if: matrix.package != 'tauri-plugin-sql' && matrix.package != 'tauri-plugin-http' if: matrix.package != 'tauri-plugin-http'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --all-features
- name: test ${{ matrix.package }} - name: test ${{ matrix.package }}
if: matrix.package == 'tauri-plugin-http' if: matrix.package == 'tauri-plugin-http'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets
- name: test ${{ matrix.package }} sqlite
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features sqlite
- name: test ${{ matrix.package }} mysql
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features mysql
- name: test ${{ matrix.package }} postgres
if: matrix.package == 'tauri-plugin-sql'
run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features postgres

64
.gitignore vendored

@ -1,4 +1,60 @@
target # dependency directories
node_modules node_modules/
dist-js target/
dist
# Optional npm and yarn cache directory
.npm/
.yarn/
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# .vscode workspace settings file
.vscode/settings.json
.vscode/launch.json
.vscode/tasks.json
# npm, yarn and bun lock files
package-lock.json
yarn.lock
bun.lockb
# rust compiled folders
target/
# compiled plugins
dist-js/
# plugins .tauri directory
/plugins/*/.tauri
# examples
examples/*/dist
plugins/*/examples/*/dist
examples/*/src-tauri/gen/schemas
plugins/*/examples/*/src-tauri/gen/schemas
# logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# runtime data
pids
*.pid
*.seed
*.pid.lock
# miscellaneous
/.vs
.DS_Store
.Thumbs.db
*.sublime*
.idea
debug.log
TODO.md

@ -1 +1 @@
auto-install-peers=true link-workspace-packages=true

@ -1,12 +1,27 @@
target /.changes
node_modules /.vscode
dist
dist-js # dependcies and artifacts directories
node_modules/
target/
dist-js/
dist/
# lock files
pnpm-lock.yaml pnpm-lock.yaml
Cargo.lock
.build # examples gen directory
build examples/*/src-tauri/gen/
plugins/*/examples/*/src-tauri/gen/
# autogenerated files
**/autogenerated/**/*.md
api-iife.js api-iife.js
init-iife.js init-iife.js
intermediates/ CHANGELOG.md
*schema.json *schema.json
# mobile build
**/ios/.build
**/.tauri
plugins/*/android/build

@ -0,0 +1,6 @@
{
"singleQuote": true,
"semi": false,
"trailingComma": "none",
"experimentalOperatorPosition": "start"
}

@ -0,0 +1,86 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
import { readFileSync, readdirSync } from 'fs'
import { join } from 'path'
/* const ignorePackages = [
'api-example',
'api-example-js',
'deep-link-example',
'deep-link-example-js'
] */
const rsOnly = ['localhost', 'persisted-scope', 'single-instance']
function checkChangeFiles(changeFiles) {
let code = 0
for (const file of changeFiles) {
const content = readFileSync(file, 'utf8')
const [frontMatter] = /^---[\s\S.]*---\n/i.exec(content)
const packages = frontMatter
.split('\n')
.filter((l) => !(l === '---' || !l))
.map((l) => l.replace(/('|")/g, '').split(':'))
const rsPackages = Object.fromEntries(
packages
.filter((v) => !v[0].endsWith('-js'))
.map((v) => [v[0], v[1].trim()])
)
const jsPackages = Object.fromEntries(
packages
.filter((v) => v[0].endsWith('-js'))
.map((v) => [v[0].slice(0, -3), v[1].trim()])
)
for (const pkg in rsPackages) {
if (rsOnly.includes(pkg)) continue
if (!jsPackages[pkg]) {
console.error(
`Missing "${rsPackages[pkg]}" bump for JS package "${pkg}-js" in ${file}.`
)
code = 1
} else if (rsPackages[pkg] != jsPackages[pkg]) {
console.error(
`"${pkg}" and "${pkg}-js" have different version bumps in ${file}.`
)
code = 1
}
}
for (const pkg in jsPackages) {
if (!rsPackages[pkg]) {
console.error(
`Missing "${jsPackages[pkg]}" bump for Rust package "${pkg}" in ${file}.`
)
code = 1
} else if (rsPackages[pkg] != jsPackages[pkg]) {
console.error(
`"${pkg}" and "${pkg}-js" have different version bumps in ${file}.`
)
code = 1
}
}
}
process.exit(code)
}
const [_bin, _script, ...files] = process.argv
if (files.length > 0) {
checkChangeFiles(
files.filter((f) => f.toLowerCase() !== '.changes/readme.md')
)
} else {
const changeFiles = readdirSync('.changes')
.filter((f) => f.endsWith('.md') && f.toLowerCase() !== 'readme.md')
.map((p) => join('.changes', p))
checkChangeFiles(changeFiles)
}

@ -2,129 +2,129 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
import fs from "fs"; import fs from 'fs'
import path from "path"; import path from 'path'
import readline from "readline"; import readline from 'readline'
const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: MIT`; SPDX-License-Identifier: MIT`
const ignoredLicenses = [ const ignoredLicenses = [
"// Copyright 2021 Flavio Oliveira", '// Copyright 2021 Flavio Oliveira',
"// Copyright 2021 Jonas Kruckenberg", '// Copyright 2021 Jonas Kruckenberg',
"// Copyright 2018-2023 the Deno authors.", '// Copyright 2018-2023 the Deno authors.'
]; ]
const extensions = [".rs", ".js", ".ts", ".yml", ".swift", ".kt"]; const extensions = ['.rs', '.js', '.ts', '.yml', '.swift', '.kt']
const ignore = [ const ignore = [
"target", 'target',
"templates", 'templates',
"node_modules", 'node_modules',
"gen", 'gen',
"dist", 'dist',
"dist-js", 'dist-js',
".svelte-kit", '.svelte-kit',
"api-iife.js", 'api-iife.js',
"init-iife.js", 'init-iife.js',
".build", '.build',
"notify_rust", 'notify_rust'
]; ]
async function checkFile(file) { async function checkFile(file) {
if ( if (
extensions.some((e) => file.endsWith(e)) && extensions.some((e) => file.endsWith(e))
!ignore.some((i) => file.includes(`${path.sep}${i}`)) && !ignore.some((i) => file.includes(`${path.sep}${i}`))
) { ) {
const fileStream = fs.createReadStream(file); const fileStream = fs.createReadStream(file)
const rl = readline.createInterface({ const rl = readline.createInterface({
input: fileStream, input: fileStream,
crlfDelay: Infinity, crlfDelay: Infinity
}); })
let contents = ``; let contents = ``
let i = 0; let i = 0
for await (let line of rl) { for await (let line of rl) {
// ignore empty lines, allow shebang, swift-tools-version and bundler license // ignore empty lines, allow shebang, swift-tools-version and bundler license
if ( if (
line.length === 0 || line.length === 0
line.startsWith("#!") || || line.startsWith('#!')
line.startsWith("// swift-tools-version:") || || line.startsWith('// swift-tools-version:')
ignoredLicenses.includes(line) || ignoredLicenses.includes(line)
) { ) {
continue; continue
} }
// strip comment marker // strip comment marker
if (line.startsWith("// ")) { if (line.startsWith('// ')) {
line = line.substring(3); line = line.substring(3)
} else if (line.startsWith("# ")) { } else if (line.startsWith('# ')) {
line = line.substring(2); line = line.substring(2)
} }
contents += line; contents += line
if (++i === 3) { if (++i === 3) {
break; break
} }
contents += "\n"; contents += '\n'
} }
if (contents !== header) { if (contents !== header) {
return true; return true
} }
} }
return false; return false
} }
async function check(src) { async function check(src) {
const missingHeader = []; const missingHeader = []
for (const entry of fs.readdirSync(src, { for (const entry of fs.readdirSync(src, {
withFileTypes: true, withFileTypes: true
})) { })) {
const p = path.join(src, entry.name); const p = path.join(src, entry.name)
if (entry.isSymbolicLink() || ignore.includes(entry.name)) { if (entry.isSymbolicLink() || ignore.includes(entry.name)) {
continue; continue
} }
if (entry.isDirectory()) { if (entry.isDirectory()) {
const missing = await check(p); const missing = await check(p)
missingHeader.push(...missing); missingHeader.push(...missing)
} else { } else {
const isMissing = await checkFile(p); const isMissing = await checkFile(p)
if (isMissing) { if (isMissing) {
missingHeader.push(p); missingHeader.push(p)
} }
} }
} }
return missingHeader; return missingHeader
} }
const [_bin, _script, ...files] = process.argv; const [_bin, _script, ...files] = process.argv
if (files.length > 0) { if (files.length > 0) {
async function run() { async function run() {
const missing = []; const missing = []
for (const f of files) { for (const f of files) {
const isMissing = await checkFile(f); const isMissing = await checkFile(f)
if (isMissing) { if (isMissing) {
missing.push(f); missing.push(f)
} }
} }
if (missing.length > 0) { if (missing.length > 0) {
console.log(missing.join("\n")); console.log(missing.join('\n'))
process.exit(1); process.exit(1)
} }
} }
run(); run()
} else { } else {
check(path.resolve(new URL(import.meta.url).pathname, "../../..")).then( check(path.resolve(new URL(import.meta.url).pathname, '../../..')).then(
(missing) => { (missing) => {
if (missing.length > 0) { if (missing.length > 0) {
console.log(missing.join("\n")); console.log(missing.join('\n'))
process.exit(1); process.exit(1)
} }
}, }
); )
} }

@ -5,5 +5,6 @@ then
echo "working directory is clean" echo "working directory is clean"
else else
echo "found diff" echo "found diff"
git diff --name-status HEAD
exit 1 exit 1
fi fi

@ -1,60 +0,0 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
/*
This script is solely intended to be run as part of the `covector publish` step to
check the latest version of a crate, considering the current minor version.
*/
const https = require("https");
const kind = process.argv[2];
const packageName = process.argv[3];
const packageVersion = process.argv[4];
const target = packageVersion.substring(0, packageVersion.lastIndexOf("."));
let url = null;
switch (kind) {
case "cargo":
url = `https://crates.io/api/v1/crates/${packageName}`;
break;
case "npm":
url = `https://registry.npmjs.org/${packageName}`;
break;
default:
throw new Error("unexpected kind " + kind);
}
const options = {
headers: {
"Content-Type": "application/json",
Accept: "application/json",
"User-Agent": "tauri (https://github.com/tauri-apps/tauri)",
},
};
https.get(url, options, (response) => {
let chunks = [];
response.on("data", function (chunk) {
chunks.push(chunk);
});
response.on("end", function () {
const data = JSON.parse(chunks.join(""));
if (kind === "cargo") {
if (data.versions) {
const versions = data.versions.filter((v) => v.num.startsWith(target));
console.log(versions.length ? versions[0].num : "0.0.0");
} else {
console.log("0.0.0");
}
} else if (kind === "npm") {
const versions = Object.keys(data.versions || {}).filter((v) =>
v.startsWith(target),
);
console.log(versions[versions.length - 1] || "0.0.0");
}
});
});

@ -0,0 +1,2 @@
plugins/*/permissions/autogenerated/
plugins/*/android/.tauri/tauri-api/build/

@ -0,0 +1,8 @@
{
"recommendations": [
"rust-lang.rust-analyzer",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"tamasfe.even-better-toml"
]
}

5789
Cargo.lock generated

File diff suppressed because it is too large Load Diff

@ -2,6 +2,7 @@
members = [ members = [
"plugins/*", "plugins/*",
"plugins/*/tests/*", "plugins/*/tests/*",
"plugins/updater/tests/updater-migration/v2-app",
"plugins/*/examples/*/src-tauri", "plugins/*/examples/*/src-tauri",
"examples/*/src-tauri", "examples/*/src-tauri",
] ]
@ -9,20 +10,27 @@ resolver = "2"
[workspace.dependencies] [workspace.dependencies]
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
tracing = "0.1"
log = "0.4" log = "0.4"
tauri = "2.0.0-beta.4" tauri = { version = "2", default-features = false }
tauri-build = "2.0.0-beta.3" tauri-build = "2"
tauri-plugin = "2.0.0-beta.3" tauri-plugin = "2"
tauri-utils = "2"
serde_json = "1" serde_json = "1"
thiserror = "1" thiserror = "2"
url = "2" url = "2"
schemars = "0.8" schemars = "0.8"
dunce = "1"
specta = "^2.0.0-rc.16"
glob = "0.3"
zbus = "5"
[workspace.package] [workspace.package]
edition = "2021" edition = "2021"
authors = ["Tauri Programme within The Commons Conservancy"] authors = ["Tauri Programme within The Commons Conservancy"]
license = "Apache-2.0 OR MIT" license = "Apache-2.0 OR MIT"
rust-version = "1.75" rust-version = "1.77.2"
repository = "https://github.com/tauri-apps/plugins-workspace"
# default to small, optimized release binaries # default to small, optimized release binaries
[profile.release] [profile.release]

@ -1,37 +1,49 @@
# Official Tauri Plugins
This repo and all plugins require a Rust version of at least **1.77.2**
## Plugins Found Here ## Plugins Found Here
| | | Win | Mac | Lin | iOS | And | | | | Win | Mac | Lin | iOS | And |
| ----------------------------------------------- | ------------------------------------------------------ | --- | --- | --- | --- | --- | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- | --- | --- | --- |
| [authenticator](plugins/authenticator) | Interface with hardware security keys. | ✅ | ✅ | ✅ | ? | ? | | [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ❌ | ❌ |
| [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ? | ? | | [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ |
| [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ | | [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ | | [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ❌ | ❌ |
| [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? | | [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ | | [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ? | ? | ? | ✅ | ✅ | | [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ | | [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? |
| [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? | | [geolocation](plugins/geolocation) | Get and track current device position. | ? | ? | ? | ✅ | ✅ |
| [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? | | [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? |
| [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | ✅ | | [haptics](plugins/haptics) | Haptic feedback and vibrations. | ? | ? | ? | ✅ | ✅ |
| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? | | [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | ✅ | ✅ | | [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? |
| [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ | | [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ | | [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ | | [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? | | [opener](plugins/opener) | Open files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? |
| [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? | | [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [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. | ✅ | ✅ | ✅ | ? | ? | | [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? |
| [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? | | [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ❌ | ❌ |
| [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? | | [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. | ✅ | ✅ | ✅ | ? | ? |
| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? | | [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? |
| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ? | ? | | [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ✅ | ✅ | ❌ | ❌ |
| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? | | [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? | | [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | ✅ |
| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? | | [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? |
| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | | [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ❌ | ❌ |
| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? | | [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? |
| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? |
_This repo and all plugins require a Rust version of at least **1.75**_ | [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ❌ | ❌ |
- ✅: (Partially) Supported
- ❌: Not supported
- `?` : Unknown/Untested or Planned
## Contributing
PRs accepted. Please make sure to read the [Contributing Guide](https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md) before making a pull request.
## Partners ## Partners

@ -0,0 +1,23 @@
# Security Policy
**Do not report security vulnerabilities through public GitHub issues.**
**Please use the [Private Vulnerability Disclosure](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability) feature of GitHub.**
Include as much of the following information:
- Type of issue (e.g. improper input parsing, privilege escalation, etc.)
- The location of the affected source code (tag/branch/commit or direct URL)
- Any special configuration required to reproduce the issue
- The distribution affected or used to help us with reproduction of the issue
- Step-by-step instructions to reproduce the issue
- Ideally a reproduction repository
- Impact of the issue, including how an attacker might exploit the issue
We prefer to receive reports in English.
## Contact
Please disclose a vulnerability or security relevant issue here: [https://github.com/tauri-apps/plugins-workspace/security/advisories/new](https://github.com/tauri-apps/plugins-workspace/security/advisories/new).
Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app).

@ -0,0 +1,38 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
import eslint from '@eslint/js'
import eslintConfigPrettier from 'eslint-config-prettier'
import eslintPluginSecurity from 'eslint-plugin-security'
import tseslint from 'typescript-eslint'
export default tseslint.config(
{
ignores: [
'**/target',
'**/node_modules',
'**/examples',
'**/dist',
'**/dist-js',
'**/build',
'**/api-iife.js',
'**/init-iife.js',
'**/init.js',
'**/rollup.config.js',
'**/bindings.ts',
'**/.test-server',
'.scripts',
'eslint.config.js'
]
},
eslint.configs.recommended,
eslintConfigPrettier,
eslintPluginSecurity.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: { project: true, tsconfigRootDir: import.meta.dirname }
}
}
)

@ -1,4 +0,0 @@
/node_modules/
/.vscode/
.DS_Store
.cargo

@ -1,5 +1,431 @@
# Changelog # Changelog
## \[2.0.21]
### Dependencies
- Upgraded to `log-js@2.4.0`
- Upgraded to `biometric-js@2.2.1`
- Upgraded to `updater-js@2.7.1`
## \[2.0.20]
### Dependencies
- Upgraded to `http-js@2.4.3`
- Upgraded to `shell-js@2.2.1`
- Upgraded to `fs-js@2.2.1`
- Upgraded to `process-js@2.2.1`
- Upgraded to `updater-js@2.7.0`
- Upgraded to `dialog-js@2.2.1`
## \[2.0.19]
### Dependencies
- Upgraded to `http-js@2.4.2`
- Upgraded to `updater-js@2.6.1`
## \[2.0.18]
### Dependencies
- Upgraded to `http-js@2.4.1`
## \[2.0.17]
### Dependencies
- Upgraded to `log-js@2.3.1`
## \[2.0.16]
### Dependencies
- Upgraded to `clipboard-manager-js@2.2.2`
- Upgraded to `notification-js@2.2.2`
- Upgraded to `os-js@2.2.1`
- Upgraded to `http-js@2.4.0`
- Upgraded to `log-js@2.3.0`
- Upgraded to `updater-js@2.6.0`
## \[2.0.15]
### Dependencies
- Upgraded to `log-js@2.2.3`
- Upgraded to `opener-js@2.2.6`
## \[2.0.14]
### Dependencies
- Upgraded to `log-js@2.2.2`
- Upgraded to `updater-js@2.5.1`
## \[2.0.13]
### Dependencies
- Upgraded to `updater-js@2.5.0`
## \[2.0.12]
### Dependencies
- Upgraded to `clipboard-manager-js@2.2.1`
- Upgraded to `http-js@2.3.0`
- Upgraded to `log-js@2.2.1`
- Upgraded to `updater-js@2.4.0`
## \[2.0.11]
### Dependencies
- Upgraded to `opener-js@2.2.5`
## \[2.0.10]
### Dependencies
- Upgraded to `notification-js@2.2.1`
- Upgraded to `opener-js@2.2.4`
## \[2.0.9]
### Dependencies
- Upgraded to `opener-js@2.2.3`
- Upgraded to `updater-js@2.3.1`
## \[2.0.8]
### Dependencies
- Upgraded to `opener-js@2.2.2`
## \[2.0.7]
### Dependencies
- Upgraded to `updater-js@2.3.0`
- Upgraded to `opener-js@2.2.1`
## \[2.0.6]
### Dependencies
- Upgraded to `barcode-scanner-js@2.1.0`
- Upgraded to `biometric-js@2.1.0`
- Upgraded to `cli-js@2.1.0`
- Upgraded to `clipboard-manager-js@2.1.0`
- Upgraded to `dialog-js@2.1.0`
- Upgraded to `fs-js@2.1.0`
- Upgraded to `global-shortcut-js@2.1.0`
- Upgraded to `http-js@2.1.0`
- Upgraded to `log-js@2.1.0`
- Upgraded to `nfc-js@2.1.0`
- Upgraded to `notification-js@2.1.0`
- Upgraded to `opener-js@2.1.0`
- Upgraded to `os-js@2.1.0`
- Upgraded to `process-js@2.1.0`
- Upgraded to `shell-js@2.1.0`
- Upgraded to `store-js@2.2.0`
- Upgraded to `updater-js@2.1.0`
## \[2.0.5]
### Dependencies
- Upgraded to `fs-js@2.0.4`
- Upgraded to `dialog-js@2.0.2`
- Upgraded to `http-js@2.0.2`
## \[2.0.4]
### Dependencies
- Upgraded to `log-js@2.0.2`
## \[2.0.3]
### Dependencies
- Upgraded to `clipboard-manager-js@2.0.1`
- Upgraded to `log-js@2.0.1`
- Upgraded to `fs-js@2.0.3`
- Upgraded to `opener-js@2.0.0`
## \[2.0.2]
### Dependencies
- Upgraded to `fs-js@2.0.2`
## \[2.0.1]
### Dependencies
- Upgraded to `dialog-js@2.0.1`
- Upgraded to `fs-js@2.0.1`
- Upgraded to `http-js@2.0.1`
- Upgraded to `shell-js@2.0.1`
- Upgraded to `store-js@2.1.0`
## \[2.0.0]
- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release.
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0`
- Upgraded to `biometric-js@2.0.0`
- Upgraded to `cli-js@2.0.0`
- Upgraded to `clipboard-manager-js@2.0.0`
- Upgraded to `fs-js@2.0.0`
- Upgraded to `dialog-js@2.0.0`
- Upgraded to `global-shortcut-js@2.0.0`
- Upgraded to `http-js@2.0.0`
- Upgraded to `log-js@2.0.0`
- Upgraded to `nfc-js@2.0.0`
- Upgraded to `notification-js@2.0.0`
- Upgraded to `os-js@2.0.0`
- Upgraded to `process-js@2.0.0`
- Upgraded to `shell-js@2.0.0`
- Upgraded to `store-js@2.0.0`
- Upgraded to `updater-js@2.0.0`
## \[2.0.0-rc.5]
### Dependencies
- Upgraded to `store-js@2.0.0-rc.2`
## \[2.0.0-rc.4]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-rc.2`
- Upgraded to `clipboard-manager-js@2.0.0-rc.2`
## \[2.0.0-rc.3]
### Dependencies
- Upgraded to `updater-js@2.0.0-rc.2`
## \[2.0.0-rc.2]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-rc.1`
- Upgraded to `notification-js@2.0.0-rc.1`
- Upgraded to `dialog-js@2.0.0-rc.1`
- Upgraded to `biometric-js@2.0.0-rc.1`
- Upgraded to `cli-js@2.0.0-rc.1`
- Upgraded to `clipboard-manager-js@2.0.0-rc.1`
- Upgraded to `fs-js@2.0.0-rc.2`
- Upgraded to `global-shortcut-js@2.0.0-rc.1`
- Upgraded to `http-js@2.0.0-rc.2`
- Upgraded to `log-js@2.0.0-rc.1`
- Upgraded to `nfc-js@2.0.0-rc.1`
- Upgraded to `os-js@2.0.0-rc.1`
- Upgraded to `process-js@2.0.0-rc.1`
- Upgraded to `shell-js@2.0.0-rc.1`
- Upgraded to `store-js@2.0.0-rc.1`
- Upgraded to `updater-js@2.0.0-rc.1`
## \[2.0.0-rc.1]
### Dependencies
- Upgraded to `http-js@2.0.0-rc.1`
- Upgraded to `fs-js@2.0.0-rc.1`
## \[2.0.0-rc.0]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-rc.0`
- Upgraded to `biometric-js@2.0.0-rc.0`
- Upgraded to `cli-js@2.0.0-rc.0`
- Upgraded to `clipboard-manager-js@2.0.0-rc.0`
- Upgraded to `dialog-js@2.0.0-rc.0`
- Upgraded to `fs-js@2.0.0-rc.0`
- Upgraded to `global-shortcut-js@2.0.0-rc.0`
- Upgraded to `http-js@2.0.0-rc.0`
- Upgraded to `log-js@2.0.0-rc.0`
- Upgraded to `nfc-js@2.0.0-rc.0`
- Upgraded to `notification-js@2.0.0-rc.0`
- Upgraded to `os-js@2.0.0-rc.0`
- Upgraded to `process-js@2.0.0-rc.0`
- Upgraded to `shell-js@2.0.0-rc.0`
- Upgraded to `updater-js@2.0.0-rc.0`
## \[2.0.0-beta.12]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-beta.8`
- Upgraded to `biometric-js@2.0.0-beta.8`
- Upgraded to `cli-js@2.0.0-beta.8`
- Upgraded to `clipboard-manager-js@2.1.0-beta.6`
- Upgraded to `dialog-js@2.0.0-beta.8`
- Upgraded to `fs-js@2.0.0-beta.8`
- Upgraded to `global-shortcut-js@2.0.0-beta.8`
- Upgraded to `http-js@2.0.0-beta.9`
- Upgraded to `log-js@2.0.0-beta.9`
- Upgraded to `nfc-js@2.0.0-beta.8`
- Upgraded to `notification-js@2.0.0-beta.8`
- Upgraded to `os-js@2.0.0-beta.8`
- Upgraded to `process-js@2.0.0-beta.8`
- Upgraded to `shell-js@2.0.0-beta.9`
- Upgraded to `updater-js@2.0.0-beta.8`
## \[2.0.0-beta.11]
### Dependencies
- Upgraded to `global-shortcut-js@2.0.0-beta.7`
- Upgraded to `http-js@2.0.0-beta.8`
- Upgraded to `os-js@2.0.0-beta.7`
- Upgraded to `barcode-scanner-js@2.0.0-beta.7`
- Upgraded to `biometric-js@2.0.0-beta.7`
- Upgraded to `cli-js@2.0.0-beta.7`
- Upgraded to `clipboard-manager-js@2.1.0-beta.5`
- Upgraded to `dialog-js@2.0.0-beta.7`
- Upgraded to `fs-js@2.0.0-beta.7`
- Upgraded to `log-js@2.0.0-beta.8`
- Upgraded to `nfc-js@2.0.0-beta.7`
- Upgraded to `notification-js@2.0.0-beta.7`
- Upgraded to `process-js@2.0.0-beta.7`
- Upgraded to `shell-js@2.0.0-beta.8`
- Upgraded to `updater-js@2.0.0-beta.7`
## \[2.0.0-beta.10]
### Dependencies
- Upgraded to `os-js@2.0.0-beta.6`
- Upgraded to `barcode-scanner-js@2.0.0-beta.6`
- Upgraded to `biometric-js@2.0.0-beta.6`
- Upgraded to `cli-js@2.0.0-beta.6`
- Upgraded to `clipboard-manager-js@2.1.0-beta.4`
- Upgraded to `dialog-js@2.0.0-beta.6`
- Upgraded to `fs-js@2.0.0-beta.6`
- Upgraded to `global-shortcut-js@2.0.0-beta.6`
- Upgraded to `http-js@2.0.0-beta.7`
- Upgraded to `log-js@2.0.0-beta.7`
- Upgraded to `nfc-js@2.0.0-beta.6`
- Upgraded to `notification-js@2.0.0-beta.6`
- Upgraded to `process-js@2.0.0-beta.6`
- Upgraded to `shell-js@2.0.0-beta.7`
- Upgraded to `updater-js@2.0.0-beta.6`
## \[2.0.0-beta.9]
### Dependencies
- Upgraded to `http-js@2.0.0-beta.6`
## \[2.0.0-beta.8]
### Dependencies
- Upgraded to `barcode-scanner-js@2.0.0-beta.5`
- Upgraded to `biometric-js@2.0.0-beta.5`
- Upgraded to `cli-js@2.0.0-beta.5`
- Upgraded to `clipboard-manager-js@2.1.0-beta.3`
- Upgraded to `dialog-js@2.0.0-beta.5`
- Upgraded to `fs-js@2.0.0-beta.5`
- Upgraded to `global-shortcut-js@2.0.0-beta.5`
- Upgraded to `http-js@2.0.0-beta.5`
- Upgraded to `log-js@2.0.0-beta.6`
- Upgraded to `nfc-js@2.0.0-beta.5`
- Upgraded to `notification-js@2.0.0-beta.5`
- Upgraded to `os-js@2.0.0-beta.5`
- Upgraded to `process-js@2.0.0-beta.5`
- Upgraded to `shell-js@2.0.0-beta.6`
- Upgraded to `updater-js@2.0.0-beta.5`
## \[2.0.0-beta.7]
### Dependencies
- Upgraded to `http-js@2.0.0-beta.4`
- Upgraded to `barcode-scanner-js@2.0.0-beta.4`
- Upgraded to `biometric-js@2.0.0-beta.4`
- Upgraded to `cli-js@2.0.0-beta.4`
- Upgraded to `clipboard-manager-js@2.1.0-beta.2`
- Upgraded to `dialog-js@2.0.0-beta.4`
- Upgraded to `fs-js@2.0.0-beta.4`
- Upgraded to `global-shortcut-js@2.0.0-beta.4`
- Upgraded to `log-js@2.0.0-beta.5`
- Upgraded to `nfc-js@2.0.0-beta.4`
- Upgraded to `notification-js@2.0.0-beta.4`
- Upgraded to `os-js@2.0.0-beta.4`
- Upgraded to `process-js@2.0.0-beta.4`
- Upgraded to `shell-js@2.0.0-beta.5`
- Upgraded to `updater-js@2.0.0-beta.4`
## \[2.0.0-beta.6]
### Dependencies
- Upgraded to `shell-js@2.0.0-beta.4`
## \[2.0.0-beta.5]
### Dependencies
- Upgraded to `global-shortcut-js@2.0.0-beta.3`
- Upgraded to `barcode-scanner-js@2.0.0-beta.3`
- Upgraded to `biometric-js@2.0.0-beta.3`
- Upgraded to `cli-js@2.0.0-beta.3`
- Upgraded to `clipboard-manager-js@2.1.0-beta.1`
- Upgraded to `dialog-js@2.0.0-beta.3`
- Upgraded to `fs-js@2.0.0-beta.3`
- Upgraded to `http-js@2.0.0-beta.3`
- Upgraded to `log-js@2.0.0-beta.4`
- Upgraded to `nfc-js@2.0.0-beta.3`
- Upgraded to `notification-js@2.0.0-beta.3`
- Upgraded to `os-js@2.0.0-beta.3`
- Upgraded to `process-js@2.0.0-beta.3`
- Upgraded to `shell-js@2.0.0-beta.3`
- Upgraded to `updater-js@2.0.0-beta.3`
## \[2.0.0-beta.4]
### Dependencies
- Upgraded to `log-js@2.0.0-beta.3`
## \[2.0.0-beta.3]
### Dependencies
- Upgraded to `clipboard-manager-js@2.1.0-beta.0`
## \[2.0.0-beta.2]
### Dependencies
- Upgraded to `clipboard-manager-js@2.0.0-beta.2`
- Upgraded to `dialog-js@2.0.0-beta.2`
- Upgraded to `fs-js@2.0.0-beta.2`
- Upgraded to `http-js@2.0.0-beta.2`
- Upgraded to `shell-js@2.0.0-beta.2`
- Upgraded to `barcode-scanner-js@2.0.0-beta.2`
- Upgraded to `biometric-js@2.0.0-beta.2`
- Upgraded to `cli-js@2.0.0-beta.2`
- Upgraded to `global-shortcut-js@2.0.0-beta.2`
- Upgraded to `log-js@2.0.0-beta.2`
- Upgraded to `nfc-js@2.0.0-beta.2`
- Upgraded to `notification-js@2.0.0-beta.2`
- Upgraded to `os-js@2.0.0-beta.2`
- Upgraded to `process-js@2.0.0-beta.2`
- Upgraded to `updater-js@2.0.0-beta.2`
## \[2.0.0-beta.1] ## \[2.0.0-beta.1]
### Dependencies ### Dependencies

@ -3,5 +3,5 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
window.__TAURI_ISOLATION_HOOK__ = (payload) => { window.__TAURI_ISOLATION_HOOK__ = (payload) => {
return payload; return payload
}; }

@ -1,14 +1,14 @@
{ {
"compilerOptions": { "compilerOptions": {
"moduleResolution": "node", "moduleResolution": "bundler",
"target": "esnext", "target": "ESNext",
"module": "esnext", "module": "ESNext",
/** /**
* svelte-preprocess cannot figure out whether you have * svelte-preprocess cannot figure out whether you have
* a value or a type, so tell TypeScript to enforce using * a value or a type, so tell TypeScript to enforce using
* `import type` instead of `import` for Types. * `import type` instead of `import` for Types.
*/ */
"importsNotUsedAsValues": "error", "verbatimModuleSyntax": true,
"isolatedModules": true, "isolatedModules": true,
"resolveJsonModule": true, "resolveJsonModule": true,
/** /**
@ -18,8 +18,6 @@
"sourceMap": true, "sourceMap": true,
"esModuleInterop": true, "esModuleInterop": true,
"skipLibCheck": true, "skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": ".",
/** /**
* Typecheck JS in `.svelte` and `.js` files by default. * Typecheck JS in `.svelte` and `.js` files by default.
* Disable this if you'd like to use dynamic types. * Disable this if you'd like to use dynamic types.

@ -1,40 +1,44 @@
{ {
"name": "svelte-app", "name": "api",
"private": true, "private": true,
"version": "2.0.0-beta.1", "version": "2.0.21",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --clearScreen false", "dev": "vite --clearScreen false",
"build": "vite build", "build": "vite build",
"serve": "vite preview" "serve": "vite preview",
"tauri": "tauri"
}, },
"dependencies": { "dependencies": {
"@tauri-apps/api": "2.0.0-beta.2", "@tauri-apps/api": "2.5.0",
"@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.1", "@tauri-apps/plugin-barcode-scanner": "^2.2.0",
"@tauri-apps/plugin-biometric": "2.0.0-beta.1", "@tauri-apps/plugin-biometric": "^2.2.1",
"@tauri-apps/plugin-cli": "2.0.0-beta.1", "@tauri-apps/plugin-cli": "^2.2.0",
"@tauri-apps/plugin-clipboard-manager": "2.0.0-beta.1", "@tauri-apps/plugin-clipboard-manager": "^2.2.2",
"@tauri-apps/plugin-dialog": "2.0.0-beta.1", "@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-fs": "2.0.0-beta.1", "@tauri-apps/plugin-fs": "^2.2.1",
"@tauri-apps/plugin-global-shortcut": "2.0.0-beta.1", "@tauri-apps/plugin-geolocation": "^2.2.0",
"@tauri-apps/plugin-http": "2.0.0-beta.1", "@tauri-apps/plugin-global-shortcut": "^2.2.0",
"@tauri-apps/plugin-nfc": "2.0.0-beta.1", "@tauri-apps/plugin-haptics": "^2.2.0",
"@tauri-apps/plugin-notification": "2.0.0-beta.1", "@tauri-apps/plugin-http": "^2.4.3",
"@tauri-apps/plugin-os": "2.0.0-beta.1", "@tauri-apps/plugin-nfc": "^2.2.0",
"@tauri-apps/plugin-process": "2.0.0-beta.1", "@tauri-apps/plugin-notification": "^2.2.2",
"@tauri-apps/plugin-shell": "2.0.0-beta.1", "@tauri-apps/plugin-opener": "^2.2.6",
"@tauri-apps/plugin-updater": "2.0.0-beta.1", "@tauri-apps/plugin-os": "^2.2.1",
"@zerodevx/svelte-json-view": "1.0.7" "@tauri-apps/plugin-process": "^2.2.1",
"@tauri-apps/plugin-shell": "^2.2.1",
"@tauri-apps/plugin-store": "^2.2.0",
"@tauri-apps/plugin-updater": "^2.7.1",
"@zerodevx/svelte-json-view": "1.0.11"
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/codicon": "^1.1.37", "@iconify-json/codicon": "^1.2.12",
"@iconify-json/ph": "^1.1.8", "@iconify-json/ph": "^1.2.2",
"@sveltejs/vite-plugin-svelte": "^3.0.1", "@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tauri-apps/cli": "2.0.0-beta.3", "@tauri-apps/cli": "2.5.0",
"@unocss/extractor-svelte": "^0.58.0", "@unocss/extractor-svelte": "^66.0.0",
"internal-ip": "^8.0.0", "svelte": "^5.20.4",
"svelte": "^4.2.8", "unocss": "^66.0.0",
"unocss": "^0.58.0", "vite": "^6.2.6"
"vite": "^5.0.12"
} }
} }

@ -1,5 +1,594 @@
# Changelog # Changelog
## \[2.0.25]
### Dependencies
- Upgraded to `log@2.4.0`
- Upgraded to `biometric@2.2.1`
- Upgraded to `updater@2.7.1`
## \[2.0.24]
### Dependencies
- Upgraded to `http@2.4.3`
- Upgraded to `shell@2.2.1`
- Upgraded to `fs@2.2.1`
- Upgraded to `process@2.2.1`
- Upgraded to `updater@2.7.0`
- Upgraded to `dialog@2.2.1`
## \[2.0.23]
### Dependencies
- Upgraded to `http@2.4.2`
- Upgraded to `updater@2.6.1`
## \[2.0.22]
### Dependencies
- Upgraded to `http@2.4.1`
## \[2.0.21]
### Dependencies
- Upgraded to `log@2.3.1`
## \[2.0.20]
### Dependencies
- Upgraded to `clipboard-manager@2.2.2`
- Upgraded to `geolocation@2.2.4`
- Upgraded to `haptics@2.2.4`
- Upgraded to `notification@2.2.2`
- Upgraded to `os@2.2.1`
- Upgraded to `http@2.4.0`
- Upgraded to `log@2.3.0`
- Upgraded to `updater@2.6.0`
## \[2.0.19]
### Dependencies
- Upgraded to `log@2.2.3`
- Upgraded to `opener@2.2.6`
## \[2.0.18]
### Dependencies
- Upgraded to `log@2.2.2`
- Upgraded to `updater@2.5.1`
## \[2.0.17]
### Dependencies
- Upgraded to `updater@2.5.0`
## \[2.0.16]
### Dependencies
- Upgraded to `clipboard-manager@2.2.1`
- Upgraded to `http@2.3.0`
- Upgraded to `log@2.2.1`
- Upgraded to `updater@2.4.0`
## \[2.0.15]
### Dependencies
- Upgraded to `haptics@2.2.3`
- Upgraded to `geolocation@2.2.3`
- Upgraded to `opener@2.2.5`
## \[2.0.14]
### Dependencies
- Upgraded to `geolocation@2.2.2`
- Upgraded to `haptics@2.2.2`
- Upgraded to `notification@2.2.1`
- Upgraded to `opener@2.2.4`
## \[2.0.13]
### Dependencies
- Upgraded to `geolocation@2.2.1`
- Upgraded to `haptics@2.2.1`
## \[2.0.12]
### Dependencies
- Upgraded to `opener@2.2.3`
- Upgraded to `updater@2.3.1`
## \[2.0.11]
### Dependencies
- Upgraded to `opener@2.2.2`
## \[2.0.10]
### Dependencies
- Upgraded to `updater@2.3.0`
- Upgraded to `opener@2.2.1`
## \[2.0.9]
### Dependencies
- Upgraded to `barcode-scanner@2.1.0`
- Upgraded to `biometric@2.1.0`
- Upgraded to `cli@2.1.0`
- Upgraded to `clipboard-manager@2.1.0`
- Upgraded to `dialog@2.1.0`
- Upgraded to `fs@2.2.0`
- Upgraded to `geolocation@2.1.0`
- Upgraded to `global-shortcut@2.1.0`
- Upgraded to `haptics@2.1.0`
- Upgraded to `http@2.1.0`
- Upgraded to `log@2.1.0`
- Upgraded to `nfc@2.1.0`
- Upgraded to `notification@2.1.0`
- Upgraded to `opener@2.1.0`
- Upgraded to `os@2.1.0`
- Upgraded to `process@2.1.0`
- Upgraded to `shell@2.1.0`
- Upgraded to `store@2.2.0`
- Upgraded to `updater@2.2.0`
## \[2.0.8]
### Dependencies
- Upgraded to `fs@2.1.1`
- Upgraded to `dialog@2.0.5`
- Upgraded to `http@2.0.5`
## \[2.0.7]
### Dependencies
- Upgraded to `log@2.0.4`
## \[2.0.6]
### Dependencies
- Upgraded to `fs@2.1.0`
- Upgraded to `updater@2.1.0`
- Upgraded to `dialog@2.0.4`
- Upgraded to `log-plugin@2.0.3`
- Upgraded to `http@2.0.4`
- Upgraded to `opener@2.0.0`
## \[2.0.5]
### Dependencies
- Upgraded to `clipboard-manager@2.0.2`
- Upgraded to `log-plugin@2.0.2`
## \[2.0.4]
### Dependencies
- Upgraded to `fs@2.0.3`
- Upgraded to `dialog@2.0.3`
- Upgraded to `http@2.0.3`
## \[2.0.3]
### Dependencies
- Upgraded to `dialog@2.0.2`
- Upgraded to `fs@2.0.2`
- Upgraded to `http@2.0.2`
- Upgraded to `shell@2.0.2`
- Upgraded to `store@2.1.0`
## \[2.0.2]
- [`a1a82208`](https://github.com/tauri-apps/plugins-workspace/commit/a1a82208ed4ab87f83310be0dc95428aec9ab241) ([#1873](https://github.com/tauri-apps/plugins-workspace/pull/1873) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Downgrade MSRV to 1.77.2 to support Windows 7.
### Dependencies
- Upgraded to `barcode-scanner@2.0.1`
- Upgraded to `biometric@2.0.1`
- Upgraded to `cli@2.0.1`
- Upgraded to `clipboard-manager@2.0.1`
- Upgraded to `fs@2.0.1`
- Upgraded to `dialog@2.0.1`
- Upgraded to `geolocation@2.0.1`
- Upgraded to `global-shortcut@2.0.1`
- Upgraded to `haptics@2.0.1`
- Upgraded to `http@2.0.1`
- Upgraded to `log-plugin@2.0.1`
- Upgraded to `nfc@2.0.1`
- Upgraded to `notification@2.0.1`
- Upgraded to `os@2.0.1`
- Upgraded to `process@2.0.1`
- Upgraded to `shell@2.0.1`
- Upgraded to `store@2.0.1`
- Upgraded to `updater@2.0.2`
## \[2.0.1]
### Dependencies
- Upgraded to `updater@2.0.1`
## \[2.0.0]
- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release.
### Dependencies
- Upgraded to `barcode-scanner@2.0.0`
- Upgraded to `biometric@2.0.0`
- Upgraded to `cli@2.0.0`
- Upgraded to `clipboard-manager@2.0.0`
- Upgraded to `fs@2.0.0`
- Upgraded to `dialog@2.0.0`
- Upgraded to `global-shortcut@2.0.0`
- Upgraded to `http@2.0.0`
- Upgraded to `log-plugin@2.0.0`
- Upgraded to `nfc@2.0.0`
- Upgraded to `notification@2.0.0`
- Upgraded to `os@2.0.0`
- Upgraded to `process@2.0.0`
- Upgraded to `shell@2.0.0`
- Upgraded to `store@2.0.0`
- Upgraded to `updater@2.0.0`
## \[2.0.0-rc.8]
### Dependencies
- Upgraded to `cli@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.8`
- Upgraded to `fs@2.0.0-rc.6`
- Upgraded to `shell@2.0.0-rc.4`
- Upgraded to `store@2.0.0-rc.4`
- Upgraded to `updater@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.6`
## \[2.0.0-rc.7]
### Dependencies
- Upgraded to `clipboard-manager@2.0.0-rc.4`
- Upgraded to `fs@2.0.0-rc.5`
- Upgraded to `notification@2.0.0-rc.5`
- Upgraded to `dialog@2.0.0-rc.7`
- Upgraded to `http@2.0.0-rc.5`
## \[2.0.0-rc.6]
### Dependencies
- Upgraded to `dialog@2.0.0-rc.6`
- Upgraded to `fs@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.4`
## \[2.0.0-rc.5]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.4`
- Upgraded to `notification@2.0.0-rc.4`
## \[2.0.0-rc.4]
### Dependencies
- Upgraded to `fs@2.0.0-rc.3`
- Upgraded to `dialog@2.0.0-rc.5`
- Upgraded to `updater@2.0.0-rc.3`
- Upgraded to `http@2.0.0-rc.3`
## \[2.0.0-rc.3]
### Dependencies
- Upgraded to `fs@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.4`
- Upgraded to `http@2.0.0-rc.2`
## \[2.0.0-rc.2]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.3`
- Upgraded to `notification@2.0.0-rc.3`
- Upgraded to `dialog@2.0.0-rc.3`
- Upgraded to `fs@2.0.0-rc.1`
- Upgraded to `global-shortcut@2.0.0-rc.2`
- Upgraded to `store@2.0.0-rc.3`
- Upgraded to `biometric@2.0.0-rc.3`
- Upgraded to `cli@2.0.0-rc.1`
- Upgraded to `clipboard-manager@2.0.0-rc.3`
- Upgraded to `http@2.0.0-rc.1`
- Upgraded to `log-plugin@2.0.0-rc.2`
- Upgraded to `nfc@2.0.0-rc.3`
- Upgraded to `os@2.0.0-rc.1`
- Upgraded to `process@2.0.0-rc.1`
- Upgraded to `shell@2.0.0-rc.3`
- Upgraded to `updater@2.0.0-rc.2`
## \[2.0.0-rc.1]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.2`
- Upgraded to `biometric@2.0.0-rc.2`
- Upgraded to `clipboard-manager@2.0.0-rc.2`
- Upgraded to `dialog@2.0.0-rc.2`
- Upgraded to `log-plugin@2.0.0-rc.1`
- Upgraded to `nfc@2.0.0-rc.2`
- Upgraded to `notification@2.0.0-rc.2`
- Upgraded to `shell@2.0.0-rc.2`
## \[2.0.0-rc.0]
### Dependencies
- Upgraded to `dialog@2.0.0-rc.1`
- Upgraded to `updater@2.0.0-rc.1`
- Upgraded to `barcode-scanner@2.0.0-rc.1`
- Upgraded to `clipboard-manager@2.0.0-rc.1`
- Upgraded to `global-shortcut@2.0.0-rc.1`
- Upgraded to `biometric@2.0.0-rc.1`
- Upgraded to `nfc@2.0.0-rc.1`
- Upgraded to `notification@2.0.0-rc.1`
- Upgraded to `shell@2.0.0-rc.1`
## \[2.0.0-beta.17]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-rc.0`
- Upgraded to `biometric@2.0.0-rc.0`
- Upgraded to `cli@2.0.0-rc.0`
- Upgraded to `clipboard-manager@2.0.0-rc.0`
- Upgraded to `dialog@2.0.0-rc.0`
- Upgraded to `fs@2.0.0-rc.0`
- Upgraded to `global-shortcut@2.0.0-rc.0`
- Upgraded to `http@2.0.0-rc.0`
- Upgraded to `log-plugin@2.0.0-rc.0`
- Upgraded to `nfc@2.0.0-rc.0`
- Upgraded to `notification@2.0.0-rc.0`
- Upgraded to `os@2.0.0-rc.0`
- Upgraded to `process@2.0.0-rc.0`
- Upgraded to `shell@2.0.0-rc.0`
- Upgraded to `updater@2.0.0-rc.0`
## \[2.0.0-beta.16]
### Dependencies
- Upgraded to `fs@2.0.0-beta.12`
- Upgraded to `barcode-scanner@2.0.0-beta.10`
- Upgraded to `biometric@2.0.0-beta.9`
- Upgraded to `cli@2.0.0-beta.9`
- Upgraded to `clipboard-manager@2.1.0-beta.7`
- Upgraded to `dialog@2.0.0-beta.12`
- Upgraded to `global-shortcut@2.0.0-beta.9`
- Upgraded to `http@2.0.0-beta.13`
- Upgraded to `log-plugin@2.0.0-beta.10`
- Upgraded to `nfc@2.0.0-beta.9`
- Upgraded to `notification@2.0.0-beta.12`
- Upgraded to `os@2.0.0-beta.9`
- Upgraded to `process@2.0.0-beta.9`
- Upgraded to `shell@2.0.0-beta.10`
- Upgraded to `updater@2.0.0-beta.12`
## \[2.0.0-beta.15]
### Dependencies
- Upgraded to `log-plugin@2.0.0-beta.9`
## \[2.0.0-beta.14]
### Dependencies
- Upgraded to `notification@2.0.0-beta.11`
- Upgraded to `updater@2.0.0-beta.11`
## \[2.0.0-beta.13]
### Dependencies
- Upgraded to `biometric@2.0.0-beta.8`
- Upgraded to `global-shortcut@2.0.0-beta.8`
- Upgraded to `http@2.0.0-beta.12`
- Upgraded to `barcode-scanner@2.0.0-beta.9`
- Upgraded to `cli@2.0.0-beta.8`
- Upgraded to `clipboard-manager@2.1.0-beta.6`
- Upgraded to `dialog@2.0.0-beta.11`
- Upgraded to `fs@2.0.0-beta.11`
- Upgraded to `log-plugin@2.0.0-beta.8`
- Upgraded to `nfc@2.0.0-beta.8`
- Upgraded to `notification@2.0.0-beta.10`
- Upgraded to `os@2.0.0-beta.8`
- Upgraded to `process@2.0.0-beta.8`
- Upgraded to `shell@2.0.0-beta.9`
- Upgraded to `updater@2.0.0-beta.10`
## \[2.0.0-beta.12]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.5`
- Upgraded to `fs@2.0.0-beta.10`
- Upgraded to `updater@2.0.0-beta.9`
- Upgraded to `notification@2.0.0-beta.9`
- Upgraded to `os@2.0.0-beta.7`
- Upgraded to `barcode-scanner@2.0.0-beta.8`
- Upgraded to `biometric@2.0.0-beta.7`
- Upgraded to `cli@2.0.0-beta.7`
- Upgraded to `dialog@2.0.0-beta.10`
- Upgraded to `global-shortcut@2.0.0-beta.7`
- Upgraded to `http@2.0.0-beta.11`
- Upgraded to `log-plugin@2.0.0-beta.7`
- Upgraded to `nfc@2.0.0-beta.7`
- Upgraded to `process@2.0.0-beta.7`
- Upgraded to `shell@2.0.0-beta.8`
## \[2.0.0-beta.11]
### Dependencies
- Upgraded to `notification@2.0.0-beta.8`
- Upgraded to `http@2.0.0-beta.10`
- Upgraded to `updater@2.0.0-beta.8`
## \[2.0.0-beta.10]
### Dependencies
- Upgraded to `barcode-scanner@2.0.0-beta.7`
- Upgraded to `biometric@2.0.0-beta.6`
- Upgraded to `clipboard-manager@2.1.0-beta.4`
- Upgraded to `nfc@2.0.0-beta.6`
- Upgraded to `notification@2.0.0-beta.7`
- Upgraded to `shell@2.0.0-beta.7`
- Upgraded to `cli@2.0.0-beta.6`
- Upgraded to `dialog@2.0.0-beta.9`
- Upgraded to `fs@2.0.0-beta.9`
- Upgraded to `global-shortcut@2.0.0-beta.6`
- Upgraded to `http@2.0.0-beta.9`
- Upgraded to `log-plugin@2.0.0-beta.6`
- Upgraded to `os@2.0.0-beta.6`
- Upgraded to `process@2.0.0-beta.6`
- Upgraded to `updater@2.0.0-beta.7`
## \[2.0.0-beta.9]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.3`
- Upgraded to `dialog@2.0.0-beta.8`
- Upgraded to `http@2.0.0-beta.8`
- Upgraded to `notification@2.0.0-beta.6`
- Upgraded to `shell@2.0.0-beta.6`
- Upgraded to `barcode-scanner@2.0.0-beta.6`
- Upgraded to `biometric@2.0.0-beta.5`
- Upgraded to `nfc@2.0.0-beta.5`
- Upgraded to `cli@2.0.0-beta.5`
- Upgraded to `fs@2.0.0-beta.8`
- Upgraded to `global-shortcut@2.0.0-beta.5`
- Upgraded to `log-plugin@2.0.0-beta.5`
- Upgraded to `os@2.0.0-beta.5`
- Upgraded to `process@2.0.0-beta.5`
- Upgraded to `updater@2.0.0-beta.6`
## \[2.0.0-beta.8]
### Dependencies
- Upgraded to `shell@2.0.0-beta.5`
## \[2.0.0-beta.7]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.2`
- Upgraded to `global-shortcut@2.0.0-beta.4`
- Upgraded to `barcode-scanner@2.0.0-beta.5`
- Upgraded to `biometric@2.0.0-beta.4`
- Upgraded to `cli@2.0.0-beta.4`
- Upgraded to `dialog@2.0.0-beta.7`
- Upgraded to `fs@2.0.0-beta.7`
- Upgraded to `http@2.0.0-beta.7`
- Upgraded to `log-plugin@2.0.0-beta.4`
- Upgraded to `nfc@2.0.0-beta.4`
- Upgraded to `notification@2.0.0-beta.5`
- Upgraded to `os@2.0.0-beta.4`
- Upgraded to `process@2.0.0-beta.4`
- Upgraded to `shell@2.0.0-beta.4`
- Upgraded to `updater@2.0.0-beta.5`
## \[2.0.0-beta.6]
### Dependencies
- Upgraded to `notification@2.0.0-beta.4`
- Upgraded to `barcode-scanner@2.0.0-beta.4`
- Upgraded to `dialog@2.0.0-beta.6`
- Upgraded to `fs@2.0.0-beta.6`
- Upgraded to `http@2.0.0-beta.6`
## \[2.0.0-beta.5]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.1`
- Upgraded to `http@2.0.0-beta.5`
- Upgraded to `updater@2.0.0-beta.4`
- Upgraded to `dialog@2.0.0-beta.5`
- Upgraded to `fs@2.0.0-beta.5`
## \[2.0.0-beta.4]
### Dependencies
- Upgraded to `dialog@2.0.0-beta.4`
- Upgraded to `fs@2.0.0-beta.4`
- Upgraded to `http@2.0.0-beta.4`
## \[2.0.0-beta.3]
### Dependencies
- Upgraded to `clipboard-manager@2.1.0-beta.0`
- Upgraded to `dialog@2.0.0-beta.3`
- Upgraded to `fs@2.0.0-beta.3`
- Upgraded to `http@2.0.0-beta.3`
- Upgraded to `updater@2.0.0-beta.3`
- Upgraded to `barcode-scanner@2.0.0-beta.3`
- Upgraded to `biometric@2.0.0-beta.3`
- Upgraded to `cli@2.0.0-beta.3`
- Upgraded to `global-shortcut@2.0.0-beta.3`
- Upgraded to `log-plugin@2.0.0-beta.3`
- Upgraded to `nfc@2.0.0-beta.3`
- Upgraded to `notification@2.0.0-beta.3`
- Upgraded to `os@2.0.0-beta.3`
- Upgraded to `process@2.0.0-beta.3`
- Upgraded to `shell@2.0.0-beta.3`
## \[2.0.0-beta.2]
### Dependencies
- Upgraded to `clipboard-manager@2.0.0-beta.2`
- Upgraded to `dialog@2.0.0-beta.2`
- Upgraded to `http@2.0.0-beta.2`
- Upgraded to `fs@2.0.0-beta.2`
- Upgraded to `shell@2.0.0-beta.2`
- Upgraded to `barcode-scanner@2.0.0-beta.2`
- Upgraded to `biometric@2.0.0-beta.2`
- Upgraded to `cli@2.0.0-beta.2`
- Upgraded to `global-shortcut@2.0.0-beta.2`
- Upgraded to `log-plugin@2.0.0-beta.2`
- Upgraded to `nfc@2.0.0-beta.2`
- Upgraded to `notification@2.0.0-beta.2`
- Upgraded to `os@2.0.0-beta.2`
- Upgraded to `process@2.0.0-beta.2`
- Upgraded to `updater@2.0.0-beta.2`
## \[2.0.0-beta.1] ## \[2.0.0-beta.1]
### Dependencies ### Dependencies

@ -1,7 +1,7 @@
[package] [package]
name = "api" name = "api"
publish = false publish = false
version = "2.0.0-beta.1" version = "2.0.25"
description = "An example Tauri Application showcasing the api" description = "An example Tauri Application showcasing the api"
edition = "2021" edition = "2021"
rust-version = { workspace = true } rust-version = { workspace = true }
@ -9,49 +9,61 @@ license = "Apache-2.0 OR MIT"
[lib] [lib]
name = "api_lib" name = "api_lib"
crate-type = [ "staticlib", "cdylib", "rlib" ] crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies] [build-dependencies]
tauri-build = { workspace = true, features = [ "codegen", "isolation" ] } tauri-build = { workspace = true, features = ["codegen", "isolation"] }
[dependencies] [dependencies]
serde_json = { workspace = true } serde_json = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
tiny_http = "0.11" tiny_http = "0.12"
time = "0.3"
log = { workspace = true } log = { workspace = true }
tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.1" } tauri-plugin-log = { path = "../../../plugins/log", version = "2.4.0" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.1", features = [ "watch" ] } tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.2.1", features = [
tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-beta.1" } "watch",
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-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.2.2" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.1", features = [ "windows7-compat" ] } tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.2.1" }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.1" } tauri-plugin-http = { path = "../../../plugins/http", features = [
tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.1" } "multipart",
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.1" } "cookies",
], version = "2.4.3" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.2.2", features = [
"windows7-compat",
] }
tauri-plugin-os = { path = "../../../plugins/os", version = "2.2.1" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.2.1" }
tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.2.6" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.2.1" }
tauri-plugin-store = { path = "../../../plugins/store", version = "2.2.0" }
[dependencies.tauri] [dependencies.tauri]
workspace = true workspace = true
features = [ features = [
"icon-ico", "wry",
"icon-png", "compression",
"image-ico",
"image-png",
"isolation", "isolation",
"macos-private-api", "macos-private-api",
"tray-icon", "tray-icon",
"protocol-asset" "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] [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-beta.1" } tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.2.0" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.1" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.2.0" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.1" } tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.7.1" }
tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.2.0" }
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.1" } tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.2.0" }
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.1" } tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.2.0" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.1" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.2.1" }
tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.2.4" }
[target."cfg(target_os = \"windows\")".dependencies] tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.2.4" }
window-shadows = "0.2"
[features] [features]
custom-protocol = [ "tauri/custom-protocol" ] prod = ["tauri/custom-protocol"]

@ -1,10 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>Request camera access for WebRTC</string> <string>Request camera access for WebRTC</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Request microphone access for WebRTC</string> <string>Request microphone access for WebRTC</string>
</dict> <key>NSFaceIDUsageDescription</key>
<string>Authenticate with biometrics</string>
<key>NFCReaderUsageDescription</key>
<string>Read and write to NFC tags for testing</string>
</dict>
</plist> </plist>

@ -3,11 +3,5 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
fn main() { fn main() {
let mut codegen = tauri_build::CodegenContext::new(); tauri_build::build();
if !cfg!(feature = "custom-protocol") {
codegen = codegen.dev();
}
tauri_build::try_build(tauri_build::Attributes::new().codegen(codegen))
.expect("failed to run tauri_build::try_build");
} }

@ -8,27 +8,28 @@
{ {
"identifier": "http:default", "identifier": "http:default",
"allow": [ "allow": [
"https://tauri.app",
{ {
"url": "http://localhost:3003" "url": "http://localhost:3003"
} }
] ]
}, },
"app:default", "core:default",
"resources:default",
"fs:default", "fs:default",
"menu:default", "core:window:allow-minimize",
"path:default", "core:window:allow-maximize",
"tray:default", "core:window:allow-unmaximize",
"event:default", "core:window:allow-close",
"window:default", "core:window:allow-start-dragging",
"notification:default", "notification:default",
"os:allow-platform", "os:allow-platform",
"dialog:allow-open", "dialog:allow-open",
"dialog:allow-ask",
"dialog:allow-save", "dialog:allow-save",
"dialog:allow-confirm", "dialog:allow-confirm",
"dialog:allow-message", "dialog:allow-message",
{ {
"identifier": "shell:allow-execute", "identifier": "shell:allow-spawn",
"allow": [ "allow": [
{ {
"name": "sh", "name": "sh",
@ -36,7 +37,7 @@
"args": [ "args": [
"-c", "-c",
{ {
"validator": "\\S+" "validator": ".+"
} }
] ]
}, },
@ -46,20 +47,29 @@
"args": [ "args": [
"/C", "/C",
{ {
"validator": "\\S+" "validator": ".+"
} }
] ]
} }
] ]
}, },
"shell:default",
"shell:allow-kill", "shell:allow-kill",
"shell:allow-stdin-write", "shell:allow-stdin-write",
"clipboard-manager:allow-read", "process:allow-exit",
"clipboard-manager:allow-write", "process:allow-restart",
"clipboard-manager:allow-read-text",
"clipboard-manager:allow-write-text",
"clipboard-manager:allow-read-image",
"clipboard-manager:allow-write-image",
"fs:allow-open",
"fs:allow-write",
"fs:allow-read",
"fs:allow-rename", "fs:allow-rename",
"fs:allow-mkdir", "fs:allow-mkdir",
"fs:allow-remove", "fs:allow-remove",
"fs:allow-write-text-file", "fs:allow-write-text-file",
"fs:read-meta",
"fs:scope-download-recursive", "fs:scope-download-recursive",
"fs:scope-resource-recursive", "fs:scope-resource-recursive",
{ {
@ -69,11 +79,13 @@
"path": "$APPDATA/db/**" "path": "$APPDATA/db/**"
} }
], ],
"deny": [ "deny": ["$APPDATA/db/*.stronghold"]
{ },
"path": "$APPDATA/db/*.stronghold" "store:default",
} "opener:default",
] {
"identifier": "opener:allow-open-path",
"allow": [{ "path": "$APPDATA" }, { "path": "$APPDATA/**" }]
} }
] ]
} }

@ -9,6 +9,8 @@
"updater:default", "updater:default",
"global-shortcut:allow-unregister", "global-shortcut:allow-unregister",
"global-shortcut:allow-register", "global-shortcut:allow-register",
"global-shortcut:allow-unregister-all" "global-shortcut:allow-unregister-all",
{ "identifier": "fs:allow-watch", "allow": ["*", "**/*"] },
"fs:allow-unwatch"
] ]
} }

@ -11,6 +11,14 @@
"barcode-scanner:allow-scan", "barcode-scanner:allow-scan",
"barcode-scanner:allow-cancel", "barcode-scanner:allow-cancel",
"barcode-scanner:allow-request-permissions", "barcode-scanner:allow-request-permissions",
"barcode-scanner:allow-check-permissions" "barcode-scanner:allow-check-permissions",
"geolocation:allow-check-permissions",
"geolocation:allow-request-permissions",
"geolocation:allow-watch-position",
"geolocation:allow-get-current-position",
"haptics:allow-impact-feedback",
"haptics:allow-notification-feedback",
"haptics:allow-selection-feedback",
"haptics:allow-vibrate"
] ]
} }

@ -1,3 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml

@ -4,13 +4,22 @@
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="GRADLE" /> <compositeConfiguration>
<option name="distributionType" value="DEFAULT_WRAPPED" /> <compositeBuild compositeDefinitionSource="SCRIPT">
<builds>
<build path="$PROJECT_DIR$/buildSrc" name="buildSrc">
<projects>
<project path="$PROJECT_DIR$/buildSrc" />
</projects>
</build>
</builds>
</compositeBuild>
</compositeConfiguration>
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-17" /> <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$USER_HOME$/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-2.0.0-beta.0/mobile/android" /> <option value="$USER_HOME$/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-2.0.2/mobile/android" />
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" /> <option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/buildSrc" /> <option value="$PROJECT_DIR$/buildSrc" />
@ -18,10 +27,15 @@
<option value="$PROJECT_DIR$/../../../../../plugins/biometric/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/biometric/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/clipboard-manager/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/clipboard-manager/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/dialog/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/dialog/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/fs/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/geolocation/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/haptics/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/nfc/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/nfc/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/notification/android" /> <option value="$PROJECT_DIR$/../../../../../plugins/notification/android" />
<option value="$PROJECT_DIR$/../../../../../plugins/shell/android" />
</set> </set>
</option> </option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

@ -1,25 +0,0 @@
<?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>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="KotlinJpsPluginSettings"> <component name="KotlinJpsPluginSettings">
<option name="version" value="1.8.10" /> <option name="version" value="1.9.25" />
</component> </component>
</project> </project>

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">

@ -2,4 +2,5 @@
/src/main/jniLibs/**/*.so /src/main/jniLibs/**/*.so
/src/main/assets/tauri.conf.json /src/main/assets/tauri.conf.json
/tauri.build.gradle.kts /tauri.build.gradle.kts
/proguard-tauri.pro /proguard-tauri.pro
/tauri.properties

@ -1,19 +1,28 @@
import java.util.Properties
plugins { plugins {
id("com.android.application") id("com.android.application")
id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.android")
id("rust") id("rust")
} }
val tauriProperties = Properties().apply {
val propFile = file("tauri.properties")
if (propFile.exists()) {
propFile.inputStream().use { load(it) }
}
}
android { android {
compileSdk = 33 compileSdk = 34
namespace = "com.tauri.api" namespace = "com.tauri.api"
defaultConfig { defaultConfig {
manifestPlaceholders["usesCleartextTraffic"] = "false" manifestPlaceholders["usesCleartextTraffic"] = "false"
applicationId = "com.tauri.api" applicationId = "com.tauri.api"
minSdk = 24 minSdk = 24
targetSdk = 33 targetSdk = 34
versionCode = 1 versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt()
versionName = "1.0" versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0")
} }
buildTypes { buildTypes {
getByName("debug") { getByName("debug") {
@ -39,6 +48,9 @@ android {
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "1.8"
} }
buildFeatures {
buildConfig = true
}
} }
rust { rust {
@ -54,4 +66,4 @@ dependencies {
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
} }
apply(from = "tauri.build.gradle.kts") apply(from = "tauri.build.gradle.kts")

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- AndroidTV support -->
<uses-feature android:name="android.software.leanback" android:required="false" />
<application <application
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
@ -16,6 +19,8 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
<!-- AndroidTV support -->
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter> </intent-filter>
<!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. --> <!-- NFC PLUGIN. AUTO-GENERATED. DO NOT REMOVE. -->
<intent-filter> <intent-filter>

@ -1,3 +1,3 @@
package com.tauri.api package com.tauri.api
class MainActivity : TauriActivity() class MainActivity : TauriActivity()

@ -4,8 +4,8 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.0.0") classpath("com.android.tools.build:gradle:8.5.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25")
} }
} }

@ -18,6 +18,6 @@ repositories {
dependencies { dependencies {
compileOnly(gradleApi()) compileOnly(gradleApi())
implementation("com.android.tools.build:gradle:8.0.0") implementation("com.android.tools.build:gradle:8.5.1")
} }

@ -16,7 +16,7 @@ open class BuildTask : DefaultTask() {
@TaskAction @TaskAction
fun assemble() { fun assemble() {
val executable = """node"""; val executable = """pnpm""";
try { try {
runTauriCli(executable) runTauriCli(executable)
} catch (e: Exception) { } catch (e: Exception) {
@ -32,7 +32,7 @@ open class BuildTask : DefaultTask() {
val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null")
val target = target ?: throw GradleException("target cannot be null") val target = target ?: throw GradleException("target cannot be null")
val release = release ?: throw GradleException("release cannot be null") val release = release ?: throw GradleException("release cannot be null")
val args = listOf("../node_modules/.bin/../@tauri-apps/cli/tauri.js", "android", "android-studio-script"); val args = listOf("tauri", "android", "android-studio-script");
project.exec { project.exec {
workingDir(File(project.projectDir, rootDirRel)) workingDir(File(project.projectDir, rootDirRel))

@ -21,5 +21,4 @@ kotlin.code.style=official
# resources declared in the library itself and none from the library's dependencies, # resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library # thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true android.nonTransitiveRClass=true
android.defaults.buildfeatures.buildconfig=true
android.nonFinalResIds=false android.nonFinalResIds=false

@ -1,6 +1,6 @@
#Tue May 10 19:22:52 CST 2022 #Tue May 10 19:22:52 CST 2022
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

@ -1,89 +1,89 @@
@rem @rem
@rem Copyright 2015 the original author or authors. @rem Copyright 2015 the original author or authors.
@rem @rem
@rem Licensed under the Apache License, Version 2.0 (the "License"); @rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License. @rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at @rem You may obtain a copy of the License at
@rem @rem
@rem https://www.apache.org/licenses/LICENSE-2.0 @rem https://www.apache.org/licenses/LICENSE-2.0
@rem @rem
@rem Unless required by applicable law or agreed to in writing, software @rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS, @rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and @rem See the License for the specific language governing permissions and
@rem limitations under the License. @rem limitations under the License.
@rem @rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%" == "" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@rem Gradle startup script for Windows @rem Gradle startup script for Windows
@rem @rem
@rem ########################################################################## @rem ##########################################################################
@rem Set local scope for the variables with windows NT shell @rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0 set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=. if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter. @rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe @rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute if "%ERRORLEVEL%" == "0" goto execute
echo. echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo. echo.
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation. echo location of your Java installation.
goto fail goto fail
:findJavaFromJavaHome :findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto execute
echo. echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo. echo.
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation. echo location of your Java installation.
goto fail goto fail
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd if "%ERRORLEVEL%"=="0" goto mainEnd
:fail :fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code! rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1 exit /b 1
:mainEnd :mainEnd
if "%OS%"=="Windows_NT" endlocal if "%OS%"=="Windows_NT" endlocal
:omega :omega

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@ -3,6 +3,6 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>method</key> <key>method</key>
<string>development</string> <string>debugging</string>
</dict> </dict>
</plist> </plist>

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17150" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17122"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="s0d-6b-0kx">
<objects>
<viewController id="Y6W-OH-hqX" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

@ -3,16 +3,17 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 51; objectVersion = 56;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
2ECFC1BC47D948875C8CEC41 /* libapi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC53D4128D7F74E4E6338455 /* libapi.a */; };
3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */; }; 3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */; };
328B4ADB3700C1873BEB7B10 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 90D3B673AFAB8D8AB561F616 /* main.mm */; }; 328B4ADB3700C1873BEB7B10 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 90D3B673AFAB8D8AB561F616 /* main.mm */; };
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6B7E79E23E646BA7968B457C /* Assets.xcassets */; }; 6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6B7E79E23E646BA7968B457C /* Assets.xcassets */; };
832F9A55FEDEF3D807D8C40A /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248286BAA086BB1A5F98B2B2 /* libapp.a */; };
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62601E25FA39E62BE119B74D /* Metal.framework */; }; 9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62601E25FA39E62BE119B74D /* Metal.framework */; };
9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6082E363D51372A7658C351 /* UIKit.framework */; }; 9DDA3BE70DD0E4013973FE38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6082E363D51372A7658C351 /* UIKit.framework */; };
AC8BDC2C7A63FA3FDC5967F4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */; };
AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384966E551417F94A02D2706 /* Security.framework */; }; AFA0CA286325FD7A34968CA2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384966E551417F94A02D2706 /* Security.framework */; };
B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC377692DC31A070A0188C9D /* QuartzCore.framework */; }; B60763BD194DFACA215EC7DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC377692DC31A070A0188C9D /* QuartzCore.framework */; };
C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */; }; C6D80743F168BDF017B7769E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */; };
@ -21,25 +22,26 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = "<group>"; }; 0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.rs; sourceTree = "<group>"; };
1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; path = tray.rs; sourceTree = "<group>"; }; 1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = tray.rs; sourceTree = "<group>"; };
248286BAA086BB1A5F98B2B2 /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = "<group>"; };
2F63E2AA460089BB58D40C79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 2F63E2AA460089BB58D40C79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
338E66700FD330B99D434DD7 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; 338E66700FD330B99D434DD7 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; };
384966E551417F94A02D2706 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 384966E551417F94A02D2706 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 59CFE20DCF760BE67D9CE3D6 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
5AC703CEBA41A121596066F3 /* api_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = api_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 5AC703CEBA41A121596066F3 /* Tauri API.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tauri API.app"; sourceTree = BUILT_PRODUCTS_DIR; };
62601E25FA39E62BE119B74D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; 62601E25FA39E62BE119B74D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
6B7E79E23E646BA7968B457C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 6B7E79E23E646BA7968B457C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
74A8FDFB350B966F5AAD4A24 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; 74A8FDFB350B966F5AAD4A24 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; };
785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = "<group>"; }; 785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = lib.rs; sourceTree = "<group>"; };
879941AE3DAA14534BBC6391 /* api_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = api_iOS.entitlements; sourceTree = "<group>"; }; 879941AE3DAA14534BBC6391 /* api_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = api_iOS.entitlements; sourceTree = "<group>"; };
90D3B673AFAB8D8AB561F616 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; }; 90D3B673AFAB8D8AB561F616 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
B6082E363D51372A7658C351 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; B6082E363D51372A7658C351 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
DC377692DC31A070A0188C9D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; DC377692DC31A070A0188C9D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; }; EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; };
F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; path = cmd.rs; sourceTree = "<group>"; }; F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = cmd.rs; sourceTree = "<group>"; };
FC53D4128D7F74E4E6338455 /* libapi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapi.a; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -47,7 +49,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
2ECFC1BC47D948875C8CEC41 /* libapi.a in Frameworks */, 832F9A55FEDEF3D807D8C40A /* libapp.a in Frameworks */,
3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */, 3043432501C9BC2DB6B4CB95 /* CoreGraphics.framework in Frameworks */,
9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */, 9AADB041D25772D04E543F15 /* Metal.framework in Frameworks */,
DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */, DFFF888045C8D9D9FB69E8FD /* MetalKit.framework in Frameworks */,
@ -66,6 +68,7 @@
children = ( children = (
74A8FDFB350B966F5AAD4A24 /* assets */, 74A8FDFB350B966F5AAD4A24 /* assets */,
6B7E79E23E646BA7968B457C /* Assets.xcassets */, 6B7E79E23E646BA7968B457C /* Assets.xcassets */,
4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */,
F2116A6428EED18BE2A07E2B /* api_iOS */, F2116A6428EED18BE2A07E2B /* api_iOS */,
86D903732E10FAC4D300E8DF /* Externals */, 86D903732E10FAC4D300E8DF /* Externals */,
7A9A7AC155D9E22E54D6D847 /* Sources */, 7A9A7AC155D9E22E54D6D847 /* Sources */,
@ -87,7 +90,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */, 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */,
FC53D4128D7F74E4E6338455 /* libapi.a */, 248286BAA086BB1A5F98B2B2 /* libapp.a */,
62601E25FA39E62BE119B74D /* Metal.framework */, 62601E25FA39E62BE119B74D /* Metal.framework */,
338E66700FD330B99D434DD7 /* MetalKit.framework */, 338E66700FD330B99D434DD7 /* MetalKit.framework */,
DC377692DC31A070A0188C9D /* QuartzCore.framework */, DC377692DC31A070A0188C9D /* QuartzCore.framework */,
@ -101,7 +104,7 @@
4AC51E67B71E27F15B02C5CD /* Products */ = { 4AC51E67B71E27F15B02C5CD /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5AC703CEBA41A121596066F3 /* api_iOS.app */, 5AC703CEBA41A121596066F3 /* Tauri API.app */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@ -169,7 +172,7 @@
); );
name = api_iOS; name = api_iOS;
productName = api_iOS; productName = api_iOS;
productReference = 5AC703CEBA41A121596066F3 /* api_iOS.app */; productReference = 5AC703CEBA41A121596066F3 /* Tauri API.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
@ -178,7 +181,8 @@
9BC88C3717DA5D4B78A51C15 /* Project object */ = { 9BC88C3717DA5D4B78A51C15 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 1200; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430;
TargetAttributes = { TargetAttributes = {
54DC6E273C78071F3BA12EF3 = { 54DC6E273C78071F3BA12EF3 = {
DevelopmentTeam = Q93MBH6S2F; DevelopmentTeam = Q93MBH6S2F;
@ -186,7 +190,7 @@
}; };
}; };
buildConfigurationList = 8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */; buildConfigurationList = 8FA67D0F928A09CD639137D1 /* Build configuration list for PBXProject "api" */;
compatibilityVersion = "Xcode 11.0"; compatibilityVersion = "Xcode 14.0";
developmentRegion = en; developmentRegion = en;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
@ -208,6 +212,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */, 6F379F15DA085785BA2624D4 /* Assets.xcassets in Resources */,
AC8BDC2C7A63FA3FDC5967F4 /* LaunchScreen.storyboard in Resources */,
F86717F05E27C72C9FA1FB27 /* assets in Resources */, F86717F05E27C72C9FA1FB27 /* assets in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -229,12 +234,13 @@
outputFileListPaths = ( outputFileListPaths = (
); );
outputPaths = ( outputPaths = (
"$(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libapi.a", "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a",
"$(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libapi.a", "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a",
"$(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "node ../../../node_modules/.bin/../@tauri-apps/cli/tauri.js ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}"; shellScript = "pnpm tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}";
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
@ -380,20 +386,42 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q93MBH6S2F; DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\".\"", "\".\"",
); );
INFOPLIST_FILE = api_iOS/Info.plist; INFOPLIST_FILE = api_iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
"LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = (
"LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(inherited)",
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=arm64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api; PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api;
PRODUCT_NAME = "Tauri API"; PRODUCT_NAME = "Tauri API";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@ -413,20 +441,42 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Q93MBH6S2F; DEVELOPMENT_TEAM = Q93MBH6S2F;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\".\"", "\".\"",
); );
INFOPLIST_FILE = api_iOS/Info.plist; INFOPLIST_FILE = api_iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
"LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = (
"LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(inherited)",
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=arm64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = (
"$(inherited)",
"$(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION)",
"$(SDKROOT)/usr/lib/swift",
"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
);
PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api; PRODUCT_BUNDLE_IDENTIFIER = com.tauri.api;
PRODUCT_NAME = "Tauri API"; PRODUCT_NAME = "Tauri API";
SDKROOT = iphoneos; SDKROOT = iphoneos;

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1200" LastUpgradeVersion = "1430"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

@ -2,10 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NFCReaderUsageDescription</key>
<string>NFC Test</string>
<key>NSCameraUsageDescription</key>
<string>Request camera access for barcode scanner</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -45,6 +41,12 @@
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>NSFaceIDUsageDescription</key> <key>NSFaceIDUsageDescription</key>
<string>Biometric Test</string> <string>Authenticate with biometrics</string>
<key>NSCameraUsageDescription</key>
<string>Request camera access for WebRTC</string>
<key>NSMicrophoneUsageDescription</key>
<string>Request microphone access for WebRTC</string>
<key>NFCReaderUsageDescription</key>
<string>Read and write to NFC tags for testing</string>
</dict> </dict>
</plist> </plist>

@ -5,7 +5,6 @@
<key>com.apple.developer.nfc.readersession.formats</key> <key>com.apple.developer.nfc.readersession.formats</key>
<array> <array>
<string>TAG</string> <string>TAG</string>
<string>NDEF</string>
</array> </array>
</dict> </dict>
</plist> </plist>

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

Loading…
Cancel
Save