From ebc0ab58df5f542dd4522b84834ad9beeea83ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Jaime=20Gil=20Simo=CC=83es?= Date: Thu, 4 Jul 2024 20:10:23 +0100 Subject: [PATCH] wip:Integrations page - Barcode scanner --- package.json | 13 +- pnpm-lock.yaml | 126 +++---- src-tauri/Cargo.lock | 309 ++++++++---------- src-tauri/Cargo.toml | 3 + src-tauri/capabilities/default.json | 6 +- src-tauri/capabilities/mobile.json | 12 + src-tauri/src/lib.rs | 1 + src/components/tabs/Tabs.tsx | 4 + src/pages/IntegrationsPage.tsx | 15 + src/pages/integrations/BarCodeScannerPage.tsx | 89 +++++ 10 files changed, 343 insertions(+), 235 deletions(-) create mode 100644 src-tauri/capabilities/mobile.json create mode 100644 src/pages/integrations/BarCodeScannerPage.tsx diff --git a/package.json b/package.json index d83fedb..0cc18b3 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,12 @@ "bumprelease": "yarn version major -i && ts-appversion" }, "dependencies": { - "@ionic/react": "^8.2.4", - "@ionic/react-router": "^8.2.4", + "@ionic/react": "^8.2.5", + "@ionic/react-router": "^8.2.5", "@tauri-apps/api": ">=2.0.0-beta.0", - "@tauri-apps/plugin-os": "2.0.0-beta.5", - "@tauri-apps/plugin-shell": ">=2.0.0-beta.6", + "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.6", + "@tauri-apps/plugin-os": "2.0.0-beta.6", + "@tauri-apps/plugin-shell": ">=2.0.0-beta.7", "@types/react-router": "^5.1.20", "@types/react-router-dom": "^5.3.3", "get-npm-package-version": "^1.1.1", @@ -42,7 +43,7 @@ }, "devDependencies": { "@tauri-apps/cli": ">=2.0.0-beta.0", - "@testing-library/dom": ">=10.2.0", + "@testing-library/dom": ">=10.3.0", "@testing-library/jest-dom": "^6.4.6", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", @@ -66,7 +67,7 @@ "sass": "^1.77.6", "terser": "^5.31.1", "typescript": "^5.5.3", - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-deadfile": "^1.3.0", "vite-plugin-eslint": "^1.8.1", "vitest": "^1.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a256cf6..b3dde5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,20 +6,23 @@ settings: dependencies: '@ionic/react': - specifier: ^8.2.4 - version: 8.2.4(react-dom@18.3.1)(react@18.3.1) + specifier: ^8.2.5 + version: 8.2.5(react-dom@18.3.1)(react@18.3.1) '@ionic/react-router': - specifier: ^8.2.4 - version: 8.2.4(react-dom@18.3.1)(react-router-dom@5.3.4)(react-router@5.3.4)(react@18.3.1) + specifier: ^8.2.5 + version: 8.2.5(react-dom@18.3.1)(react-router-dom@5.3.4)(react-router@5.3.4)(react@18.3.1) '@tauri-apps/api': specifier: '>=2.0.0-beta.0' version: 2.0.0-beta.13 + '@tauri-apps/plugin-barcode-scanner': + specifier: 2.0.0-beta.6 + version: 2.0.0-beta.6 '@tauri-apps/plugin-os': - specifier: 2.0.0-beta.5 - version: 2.0.0-beta.5 - '@tauri-apps/plugin-shell': - specifier: '>=2.0.0-beta.6' + specifier: 2.0.0-beta.6 version: 2.0.0-beta.6 + '@tauri-apps/plugin-shell': + specifier: '>=2.0.0-beta.7' + version: 2.0.0-beta.7 '@types/react-router': specifier: ^5.1.20 version: 5.1.20 @@ -50,17 +53,17 @@ devDependencies: specifier: '>=2.0.0-beta.0' version: 2.0.0-beta.20 '@testing-library/dom': - specifier: '>=10.2.0' - version: 10.2.0 + specifier: '>=10.3.0' + version: 10.3.0 '@testing-library/jest-dom': specifier: ^6.4.6 version: 6.4.6(vitest@1.6.0) '@testing-library/react': specifier: ^16.0.0 - version: 16.0.0(@testing-library/dom@10.2.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + version: 16.0.0(@testing-library/dom@10.3.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@testing-library/user-event': specifier: ^14.5.2 - version: 14.5.2(@testing-library/dom@10.2.0) + version: 14.5.2(@testing-library/dom@10.3.0) '@types/node': specifier: ^20.14.9 version: 20.14.9 @@ -78,10 +81,10 @@ devDependencies: version: 7.15.0(eslint@8.57.0)(typescript@5.5.3) '@vitejs/plugin-legacy': specifier: ^5.4.1 - version: 5.4.1(terser@5.31.1)(vite@5.3.2) + version: 5.4.1(terser@5.31.1)(vite@5.3.3) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.3.2) + version: 4.3.1(vite@5.3.3) '@vitest/coverage-istanbul': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -122,14 +125,14 @@ devDependencies: specifier: ^5.5.3 version: 5.5.3 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + specifier: ^5.3.3 + version: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) vite-plugin-deadfile: specifier: ^1.3.0 - version: 1.3.0(vite@5.3.2) + version: 1.3.0(vite@5.3.3) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.57.0)(vite@5.3.2) + version: 1.8.1(eslint@8.57.0)(vite@5.3.3) vitest: specifier: ^1.6.0 version: 1.6.0(@types/node@20.14.9)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1) @@ -1669,23 +1672,23 @@ packages: deprecated: Use @eslint/object-schema instead dev: true - /@ionic/core@8.2.4: - resolution: {integrity: sha512-lCsPzSEVs/XQMF25/phHlwhDNUlz4gqotzY/fEbhq2PT6Z5w81NndRAPsLQ4JM2k4N2gjJNeUFZJi+W78z2qtA==} + /@ionic/core@8.2.5: + resolution: {integrity: sha512-NhK5KfP5NL5NITibj8sOUlfI/ARNCF5rBu5HdIEfFe25MJkd0IYBQWjVaESFhSk7aB8pXEP8DIx1AHbT9e3Sog==} dependencies: - '@stencil/core': 4.19.1 + '@stencil/core': 4.19.2 ionicons: 7.4.0 tslib: 2.6.3 dev: false - /@ionic/react-router@8.2.4(react-dom@18.3.1)(react-router-dom@5.3.4)(react-router@5.3.4)(react@18.3.1): - resolution: {integrity: sha512-IuWcGYk8aljRWnOBzXP/JltTe4re55IEPNapjgRipvxwD79SjCeGUbgRA0xahN59017E70U96DcSqnWkPxdwwQ==} + /@ionic/react-router@8.2.5(react-dom@18.3.1)(react-router-dom@5.3.4)(react-router@5.3.4)(react@18.3.1): + resolution: {integrity: sha512-ntkyNJJKQluM69CW916Y8ANUdLqaHRDqWa2aBz6ZQ++33WpqPAbajEWAqpnF47s7bQX6f4UbsGGyQUychXCe6w==} peerDependencies: react: '>=16.8.6' react-dom: '>=16.8.6' react-router: ^5.0.1 react-router-dom: ^5.0.1 dependencies: - '@ionic/react': 8.2.4(react-dom@18.3.1)(react@18.3.1) + '@ionic/react': 8.2.5(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-router: 5.3.4(react@18.3.1) @@ -1693,13 +1696,13 @@ packages: tslib: 2.6.3 dev: false - /@ionic/react@8.2.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-ELhVS+aom97BvlEPC33XIeFe9nwB+Nfp74au4lWpckl1ELqwq3nfzAPco1E7cYGLla5M0Rq/hgzn1NYlBI5Ryw==} + /@ionic/react@8.2.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Iy5zM3R2InksH6Fh9AcBlgUGhz3YOV/2TDRvIdhT0wQIsDbCreAcGt8ST5x8YeKQPuChoDhmD2HQG9g7Fc9DhQ==} peerDependencies: react: '>=16.8.6' react-dom: '>=16.8.6' dependencies: - '@ionic/core': 8.2.4 + '@ionic/core': 8.2.5 ionicons: 7.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -1926,8 +1929,8 @@ packages: hasBin: true dev: false - /@stencil/core@4.19.1: - resolution: {integrity: sha512-fjSBctHrobeSL2+XcuX7GVk/eaUhZ/lvIu21RJmzHAPcNyueuSAEv7J/Isn4UlYNk70o+yOK72H0FTlNkUibvw==} + /@stencil/core@4.19.2: + resolution: {integrity: sha512-ZdnbHmHEl8E5vN0GWDtONe5w6j3CrSqqxZM4hNLBPkV/aouWKug7D5/Mi6RazfYO5U4fmHQYLwMz60rHcx0G4g==} engines: {node: '>=16.0.0', npm: '>=7.10.0'} hasBin: true dev: false @@ -2062,6 +2065,11 @@ packages: engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false + /@tauri-apps/api@2.0.0-beta.14: + resolution: {integrity: sha512-YLYgHqdwWswr4Y70+hRzaLD6kLIUgHhE3shLXNquPiTaQ9+cX3Q2dB0AFfqsua6NXYFNe7LfkmMzaqEzqv3yQg==} + engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.20: resolution: {integrity: sha512-oCJOCib7GuYkwkBXx+ekamR8NZZU+2i3MLP+DHpDxK5gS2uhCE+CBkamJkNt6y1x6xdVnwyqZOm5RvN4SRtyIA==} engines: {node: '>= 10'} @@ -2169,20 +2177,26 @@ packages: '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.20 dev: true - /@tauri-apps/plugin-os@2.0.0-beta.5: - resolution: {integrity: sha512-Qfs/clZ9R05J+OVOGkko+9OaYaL+xJaGICeQ1G5CnLFpUdTfMV10D+1nBBauxDdiLU4ay5I0iprJ5aG5GJBunQ==} + /@tauri-apps/plugin-barcode-scanner@2.0.0-beta.6: + resolution: {integrity: sha512-2btyiXQPUxGwrZCp83qdSRZffZq9kI3Z/wNWlNeshu8W09tfL2wSRV+PMDbjWCIm+JogfPhTwNYuxKMcUAYdmg==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.14 + dev: false + + /@tauri-apps/plugin-os@2.0.0-beta.6: + resolution: {integrity: sha512-28Ts286o4YH3vZ+swptVblRMuMa1MLjLbgPpnR1wuPNzzR4p7J6+Hr3Euge71RIsFJhjAeP1XkNbHgpAFj4Mpg==} dependencies: - '@tauri-apps/api': 2.0.0-beta.13 + '@tauri-apps/api': 2.0.0-beta.14 dev: false - /@tauri-apps/plugin-shell@2.0.0-beta.6: - resolution: {integrity: sha512-g3nM9cQQGl7Iv4MvyFuco/aPTiwOI/MixcoKso3VQIg5Aqd64NqR0r+GfsB0qx52txItqzSXwmeaj1eZjO9Q6Q==} + /@tauri-apps/plugin-shell@2.0.0-beta.7: + resolution: {integrity: sha512-oJxWbEiNRcoMM0PrePjJnjPHEAN1sbYuWaQ1QMtLPdjHsl83RLk+RpFzkL5WvtGknfiKY7T2qEthOID4br+mvg==} dependencies: - '@tauri-apps/api': 2.0.0-beta.13 + '@tauri-apps/api': 2.0.0-beta.14 dev: false - /@testing-library/dom@10.2.0: - resolution: {integrity: sha512-CytIvb6tVOADRngTHGWNxH8LPgO/3hi/BdCEHOf7Qd2GvZVClhVP0Wo/QHzWhpki49Bk0b4VT6xpt3fx8HTSIw==} + /@testing-library/dom@10.3.0: + resolution: {integrity: sha512-pT/TYB2+IyMYkkB6lqpkzD7VFbsR0JBJtflK3cS68sCNWxmOhWwRm1XvVHlseNEorsNcxkYsb4sRDV3aNIpttg==} engines: {node: '>=18'} dependencies: '@babel/code-frame': 7.24.7 @@ -2227,7 +2241,7 @@ packages: vitest: 1.6.0(@types/node@20.14.9)(@vitest/ui@1.6.0)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1) dev: true - /@testing-library/react@16.0.0(@testing-library/dom@10.2.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + /@testing-library/react@16.0.0(@testing-library/dom@10.3.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-guuxUKRWQ+FgNX0h0NS0FIq3Q3uLtWVpBzcLOggmfMoUpgBnzBzvLLd4fbm6yS8ydJd94cIfY4yP9qUQjM2KwQ==} engines: {node: '>=18'} peerDependencies: @@ -2243,20 +2257,20 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.7 - '@testing-library/dom': 10.2.0 + '@testing-library/dom': 10.3.0 '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: true - /@testing-library/user-event@14.5.2(@testing-library/dom@10.2.0): + /@testing-library/user-event@14.5.2(@testing-library/dom@10.3.0): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 10.2.0 + '@testing-library/dom': 10.3.0 dev: true /@types/aria-query@5.0.4: @@ -2478,7 +2492,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-legacy@5.4.1(terser@5.31.1)(vite@5.3.2): + /@vitejs/plugin-legacy@5.4.1(terser@5.31.1)(vite@5.3.3): resolution: {integrity: sha512-kee0l7dVevCNs1l3u2PnihVunvQ0WTJL2UJ/siQGD3Iht546mR9NO16tCv32uCP6lcGO1QDLqlPqInJtV1FE7A==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -2494,12 +2508,12 @@ packages: regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.31.1 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-react@4.3.1(vite@5.3.2): + /@vitejs/plugin-react@4.3.1(vite@5.3.3): resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2510,7 +2524,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) transitivePeerDependencies: - supports-color dev: true @@ -4805,8 +4819,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -5626,7 +5640,7 @@ packages: debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) transitivePeerDependencies: - '@types/node' - less @@ -5638,19 +5652,19 @@ packages: - terser dev: true - /vite-plugin-deadfile@1.3.0(vite@5.3.2): + /vite-plugin-deadfile@1.3.0(vite@5.3.3): resolution: {integrity: sha512-6mBDyy+9W2yrAK8UPaViIFeCrHkdJUp3us4DJIe+2mL4l03qx7qwkfE1qpDQPKv8tYd7McrdfuHYJo++d0LrfA==} peerDependencies: vite: ^4.0.0 || ^5.0.0 dependencies: '@swc/core': 1.5.27 fs-extra: 11.2.0 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) transitivePeerDependencies: - '@swc/helpers' dev: true - /vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.3.2): + /vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.3.3): resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' @@ -5660,11 +5674,11 @@ packages: '@types/eslint': 8.56.10 eslint: 8.57.0 rollup: 2.79.1 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) dev: true - /vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1): - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + /vite@5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1): + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5693,7 +5707,7 @@ packages: dependencies: '@types/node': 20.14.9 esbuild: 0.21.5 - postcss: 8.4.38 + postcss: 8.4.39 rollup: 4.18.0 sass: 1.77.6 terser: 5.31.1 @@ -5746,7 +5760,7 @@ packages: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) + vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) vite-node: 1.6.0(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) why-is-node-running: 2.2.2 transitivePeerDependencies: diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index a8eb0d8..dd66c63 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -274,9 +274,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.101" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac367972e516d45567c7eafc73d24e1c193dcf200a8d94e9db7b3d38b349572d" +checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" [[package]] name = "cesu8" @@ -327,7 +327,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -573,16 +573,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -595,17 +585,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "dispatch" version = "0.2.0" @@ -706,6 +685,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "fdeflate" version = "0.3.4" @@ -1268,9 +1257,9 @@ checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "c4fe55fb7a772d59a5ff1dfbff4fe0258d19b89fec4b233e75d35d5d2316badc" dependencies = [ "bytes", "futures-channel", @@ -1287,9 +1276,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" dependencies = [ "bytes", "futures-channel", @@ -1576,12 +1565,6 @@ dependencies = [ "libc", ] -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - [[package]] name = "lock_api" version = "0.4.12" @@ -1594,9 +1577,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "loom" @@ -1945,9 +1928,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -1960,9 +1943,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open" -version = "5.1.4" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5ca541f22b1c46d4bb9801014f234758ab4297e7870b904b6a8415b980a7388" +checksum = "9d2c909a3fce3bd80efef4cd1c6c056bd9376a8fe06fcfdbebaf32cb485a7e37" dependencies = [ "is-wsl", "libc", @@ -2047,7 +2030,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2236,13 +2219,12 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "plist" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "indexmap 2.2.6", - "line-wrap", "quick-xml", "serde", "time", @@ -2340,9 +2322,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" dependencies = [ "memchr", ] @@ -2662,6 +2644,17 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + [[package]] name = "serde_derive" version = "1.0.203" @@ -2686,9 +2679,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.118" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d947f6b3163d8857ea16c4fa0dd4840d52f3041039a85decd46867eb1abef2e4" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa 1.0.11", "ryu", @@ -2729,9 +2722,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.8.1" +version = "3.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +checksum = "e73139bc5ec2d45e6c5fd85be5a46949c1c39a4c18e56915f5eb4c12f975e377" dependencies = [ "base64 0.22.1", "chrono", @@ -2747,9 +2740,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.8.1" +version = "3.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" +checksum = "b80d3d6b56b64335c0180e5ffde23b3c5e08c14c585b51a15bd0e95393f46703" dependencies = [ "darling", "proc-macro2", @@ -3071,14 +3064,14 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tauri" -version = "2.0.0-beta.22" +version = "2.0.0-beta.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a258ecc5ac7ddade525f512c4962fd01cd0f5265e917b4572579c32c027bb31" +checksum = "68725c4f17f62f0fb1fa2eecaf391200bf00a9414c84f30783ddca10570690c3" dependencies = [ "anyhow", "bytes", "cocoa", - "dirs-next", + "dirs", "dunce", "embed_plist", "futures-util", @@ -3115,18 +3108,18 @@ dependencies = [ "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.56.0", + "windows 0.57.0", ] [[package]] name = "tauri-build" -version = "2.0.0-beta.17" +version = "2.0.0-beta.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b964bb6d03d97e24e12f896aab463b02a3c2ff76a60f728cc37b5548eb470e" +checksum = "b1822847744f663babbfc8b7532a104734e9cf99e3408bba7109018bf9177917" dependencies = [ "anyhow", "cargo_toml", - "dirs-next", + "dirs", "glob", "heck 0.5.0", "json-patch", @@ -3142,9 +3135,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-beta.17" +version = "2.0.0-beta.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3529cfa977ed7c097f2a5e8da19ecffbe61982450a6c819e6165b6d0cfd3dd3a" +checksum = "8e36fa3c2e3bd935827fef1eed459885414fb27c82f687d8b9a15112c8a5c8f0" dependencies = [ "base64 0.22.1", "brotli", @@ -3169,9 +3162,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-beta.17" +version = "2.0.0-beta.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f97dd80334f29314aa5f40b5fad10cb9feffd08e5a5324fd728613841e5d33" +checksum = "34aba4bed4648c3cb17d421af5783c7c29a033a94ab8597ef3791dadea69289d" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3183,9 +3176,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-beta.17" +version = "2.0.0-beta.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c8385fd0a4f661f5652b0d9e2d7256187d553bb174f88564d10ebcfa6a3af53" +checksum = "431ac9636bf81e7a04042399918ffa6b9d2413926dabc9366a24f6b487f64653" dependencies = [ "anyhow", "glob", @@ -3198,11 +3191,25 @@ dependencies = [ "walkdir", ] +[[package]] +name = "tauri-plugin-barcode-scanner" +version = "2.0.0-beta.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7498569bf6bac62e7c5f8c24241a0c678caeadac270ba5d853fe2822f0df5527" +dependencies = [ + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror", +] + [[package]] name = "tauri-plugin-os" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae3c8aeb113ce614cc36a43b1061fdf64381f7635d02c390052ce7579ec628" +checksum = "2946635d31de19ed4191f1c556da20d1257f4667a1bac03852d9bb4be9fa8ffa" dependencies = [ "gethostname", "log", @@ -3218,9 +3225,9 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0-beta.7" +version = "2.0.0-beta.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8675bf7ab71f571a99192d0685ae870eb7af1264bdbbb66a1d655609f6c7ebd" +checksum = "85f0347c4d056cca543b5f2dd74c33b64182553e03d1dba2738fe2a95f0ec9ef" dependencies = [ "encoding_rs", "log", @@ -3239,9 +3246,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-beta.18" +version = "2.0.0-beta.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7dc96172a43536236ab55b7da7b8461bf75810985e668589e2395cb476937cb" +checksum = "e5fa872242a432195b814e87f91ce10f293ae5b01fbd1eb139455496260aa7c9" dependencies = [ "dpi", "gtk", @@ -3253,14 +3260,14 @@ dependencies = [ "tauri-utils", "thiserror", "url", - "windows 0.56.0", + "windows 0.57.0", ] [[package]] name = "tauri-runtime-wry" -version = "2.0.0-beta.18" +version = "2.0.0-beta.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4fd913b1f14a9b618c7f3ae35656d3aa759767fcb95b72006357c12b9d0b09" +checksum = "3ad6d5ef3c05d1c4b6cf97b9eac1ca1ad8ff2a7057ad0a92b3e4c476f009341e" dependencies = [ "cocoa", "gtk", @@ -3276,15 +3283,15 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.56.0", + "windows 0.57.0", "wry", ] [[package]] name = "tauri-utils" -version = "2.0.0-beta.17" +version = "2.0.0-beta.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f24a9c20d676a3f025331cc1c3841256ba88c9f25fb7fae709d2b3089c50d90" +checksum = "1f81a672883c9a67eb24727c99cce583625c919a5fb696c661603b426c463c72" dependencies = [ "brotli", "cargo_metadata", @@ -3304,6 +3311,7 @@ dependencies = [ "schemars", "semver", "serde", + "serde-untagged", "serde_json", "serde_with", "swift-rs", @@ -3332,6 +3340,7 @@ dependencies = [ "serde_json", "tauri", "tauri-build", + "tauri-plugin-barcode-scanner", "tauri-plugin-os", "tauri-plugin-shell", ] @@ -3631,6 +3640,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typeid" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" + [[package]] name = "typenum" version = "1.17.0" @@ -3949,16 +3964,16 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c914dd492a52f0377bef56fd1b6e74a79090f9ee631d625d5b505a00e4538b6" +checksum = "6516cfa64c6b3212686080eeec378e662c2af54bb2a5b2a22749673f5cb2226f" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.56.0", - "windows-core 0.56.0", - "windows-implement 0.56.0", - "windows-interface 0.56.0", + "windows 0.57.0", + "windows-core 0.57.0", + "windows-implement", + "windows-interface", ] [[package]] @@ -3974,13 +3989,13 @@ dependencies = [ [[package]] name = "webview2-com-sys" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a46bcf03482ec28eeb764ca788f67998cde4213adfbbfa90462622058530f5e" +checksum = "c76d5b77320ff155660be1df3e6588bc85c75f1a9feef938cc4dc4dd60d1d7cf" dependencies = [ "thiserror", - "windows 0.56.0", - "windows-core 0.56.0", + "windows 0.57.0", + "windows-core 0.57.0", ] [[package]] @@ -4036,16 +4051,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" -dependencies = [ - "windows-core 0.56.0", - "windows-targets 0.52.5", -] - [[package]] name = "windows" version = "0.57.0" @@ -4053,7 +4058,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ "windows-core 0.57.0", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4062,19 +4067,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-core" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" -dependencies = [ - "windows-implement 0.56.0", - "windows-interface 0.56.0", - "windows-result", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4083,21 +4076,10 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", + "windows-implement", + "windows-interface", "windows-result", - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-implement" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.68", + "windows-targets 0.52.6", ] [[package]] @@ -4111,17 +4093,6 @@ dependencies = [ "syn 2.0.68", ] -[[package]] -name = "windows-interface" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.68", -] - [[package]] name = "windows-interface" version = "0.57.0" @@ -4139,7 +4110,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4166,7 +4137,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4201,18 +4172,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -4221,7 +4192,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4238,9 +4209,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -4256,9 +4227,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -4274,15 +4245,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -4298,9 +4269,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -4316,9 +4287,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -4334,9 +4305,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -4352,9 +4323,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -4377,9 +4348,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa597526af53f310a8e6218630c5024fdde8271f229e70d7d2fc70b52b8fb1e" +checksum = "68b00c945786b02d7805d09a969fa36d0eee4e0bd4fb3ec2a79d2bf45a1b44cd" dependencies = [ "base64 0.22.1", "block", @@ -4411,8 +4382,8 @@ dependencies = [ "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.56.0", - "windows-core 0.56.0", + "windows 0.57.0", + "windows-core 0.57.0", "windows-version", "x11-dl", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 9f1304e..71c9d84 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -21,3 +21,6 @@ tauri-plugin-os = "2.0.0-beta" serde = { version = "1", features = ["derive"] } serde_json = "1" +[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] +tauri-plugin-barcode-scanner = "2.0.0-beta.7" + diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index b417628..77582ef 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -2,9 +2,7 @@ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "default", "description": "Capability for the main window", - "windows": [ - "main" - ], + "windows": ["main"], "permissions": [ "path:default", "event:default", @@ -17,4 +15,4 @@ "shell:allow-open", "os:default" ] -} \ No newline at end of file +} diff --git a/src-tauri/capabilities/mobile.json b/src-tauri/capabilities/mobile.json new file mode 100644 index 0000000..f1d2d4c --- /dev/null +++ b/src-tauri/capabilities/mobile.json @@ -0,0 +1,12 @@ +{ + "$schema": "../gen/schemas/mobile-schema.json", + "identifier": "mobile-capability", + "windows": ["main"], + "platforms": ["iOS", "android"], + "permissions": [ + "barcode-scanner:default", + "barcode-scanner:allow-scan", + "barcode-scanner:allow-cancel", + "barcode-scanner:allow-request-permissions" + ] +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 280a2b7..0f5fe28 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -7,6 +7,7 @@ fn greet(name: &str) -> String { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() + .plugin(tauri_plugin_barcode_scanner::init()) .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_shell::init()) .invoke_handler(tauri::generate_handler![greet]) diff --git a/src/components/tabs/Tabs.tsx b/src/components/tabs/Tabs.tsx index 901b20f..a1e2d5f 100644 --- a/src/components/tabs/Tabs.tsx +++ b/src/components/tabs/Tabs.tsx @@ -15,6 +15,7 @@ import IntegrationsPage from '@pages/IntegrationsPage'; import AboutPage from '@pages/AboutPage'; import './Tabs.scss'; +import BarCodeScannerPage from '@pages/integrations/BarCodeScannerPage'; const Tabs: React.FC = () => ( @@ -31,6 +32,9 @@ const Tabs: React.FC = () => ( + + + diff --git a/src/pages/IntegrationsPage.tsx b/src/pages/IntegrationsPage.tsx index acf5ce5..9c4c0e9 100644 --- a/src/pages/IntegrationsPage.tsx +++ b/src/pages/IntegrationsPage.tsx @@ -1,6 +1,9 @@ import { IonContent, + IonFooter, IonHeader, + IonItem, + IonList, IonPage, IonText, IonTitle, @@ -24,7 +27,19 @@ const IntegrationsPage: React.FC = () => (

Native Tauri Integrations

+ + + BarCode Scanner Plugin + + + + + window.open('https://v2.tauri.app', '_blank')}> + Visit @tauri.app + + + ); diff --git a/src/pages/integrations/BarCodeScannerPage.tsx b/src/pages/integrations/BarCodeScannerPage.tsx new file mode 100644 index 0000000..39f02d4 --- /dev/null +++ b/src/pages/integrations/BarCodeScannerPage.tsx @@ -0,0 +1,89 @@ +import { + IonPage, + IonHeader, + IonToolbar, + IonTitle, + IonContent, + IonButton, +} from '@ionic/react'; +import { + scan, + Format, + checkPermissions, + requestPermissions, +} from '@tauri-apps/plugin-barcode-scanner'; +import { useEffect, useState } from 'react'; + +const BarCodeScannerPage: React.FC = () => { + const [hasPermissions, setHasPermissions] = useState(false); + + async function openScanner(): Promise { + // `windowed: true` actually sets the webview to transparent + // instead of opening a separate view for the camera + // make sure your user interface is ready to show what is underneath with a transparent element + if (!hasPermissions) { + await requestPermission(); + } + if (hasPermissions) { + scan({ windowed: false, formats: [Format.QRCode] }); + } + } + + async function requestPermission(): Promise { + const newPermissionState = await requestPermissions(); + if (newPermissionState === 'granted') { + setHasPermissions(true); + return true; + } else { + setHasPermissions(false); + return false; + } + } + + useEffect(() => { + const checkPermissionState = async (): Promise => { + const permissionState = await checkPermissions(); + if (permissionState === 'granted') { + setHasPermissions(true); + } else { + requestPermission(); + } + }; + checkPermissionState(); + }, []); + + return ( + + + + About + + + + + + About + + +

Bar Code Scanner

+

+ openScanner()}> + Open Scanner + +

+
+ + + ); +}; + +export default BarCodeScannerPage;